$scope.$watch(
    function(scope) {return scope.aNumber;},
    function(newValue, oldValue) {alert("Value changed");}
    );
});


$ scope。$ watch发挥其第一个功能的“作用域”是什么? (此之后的所有信息都是与切向相关的额外信息)。我知道不带$的“作用域”通常仅表示一个变量,如在指令链接功能(作用域,元素,属性,ngController)等中。但是,我不知道它的“来源”在这里。显然,它已连接到控制器的$ scope,但是如何?

另外,官方文档指出:“对$ digest()的每次调用都会调用watchExpression,并且应返回将要监视的值。(由于$ digest()在检测到更改时会重新运行,因此watchExpression可以对每个$ digest()执行多次。 ),并且应该是幂等的。”因此,执行返回函数而不是只说$ scope.valueToWatch有什么好处(这对我不起作用,但我见过有人这样做)。



随身携带工作表只是为了解决它,对于q并不需要它:
http://plnkr.co/edit/y86Wr93xLIao3wTwVsT8?p=preview

对于以后阅读相同q的用户:
$ watch上的好文章:http://tutorials.jenkov.com/angularjs/watch-digest-apply.html

最佳答案

与执行$watch的作用域完全相同。使用此代码代替$scope的唯一好处是,它避免了无用的关闭,但它却起到了同样的作用。

我不确定您的第二个问题,但请注意,这些是等效的:

1. $scope.$watch(function(scope) { return scope.prop1.prop2; }, cb);
2. $scope.$watch(function() { return $scope.prop1.prop2; }, cb);
3. $scope.$watch('prop1.prop2', cb);

关于javascript - 传递给$ scope。$ watch函数的“作用域”是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29640386/

10-15 08:24