gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:13:51 25 4
gpt4 key购买 nike

我已经在我的 Controller 中为一个名为 ctrl.test 的范围变量定义了一个 $scope.$watch。 $watch 的回调函数在生产部署中使用正确的值 (newVal) 调用,但是当从 Jasmine 测试中调用时,它使用 undefined 调用。直接访问 ctrl.test 会产生正确的值。

任何人都可以阐明这一点吗?这是一个 Plunk摆弄。

最佳答案

当使用 Controller As 模式时,使用函数作为监视表达式。

替换:

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

与:

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

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

有关为什么会出现这种情况的更多信息:https://stackoverflow.com/a/25748208/2943490

关于javascript - Jasmine 测试中未定义的 AngularJS $scope.$watch 回调函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com