编程语言
首页 > 编程语言> > javascript-在Jasmine测试中未定义AngularJS $scope.$watch回调函数参数

javascript-在Jasmine测试中未定义AngularJS $scope.$watch回调函数参数

作者:互联网

我在名为ctrl.test的范围变量中的控制器中定义了$scope.$watch. $watch的回调函数在生产部署中使用正确的值(newVal)进行调用,但是当从Jasmine测试中调用时,将使用undefined进行调用.
直接访问ctrl.test确实会产生正确的值.

有人能对此有所启发吗?这是一个Plunk用来摆弄.

解决方法:

当使用Controller As模式时,请使用函数作为watch表达式.

更换:

$scope.$watch('ctrl.test', ...

带有:

$scope.$watch(function () {
  return ctrl.test;
}, ...

新潮:http://plnkr.co/edit/4tb4nhjtdRtv8cLURWZg?p=preview

有关为什么这样的详细信息:https://stackoverflow.com/a/25748208/2943490

标签:angularjs,jasmine,javascript
来源: https://codeday.me/bug/20191121/2048488.html