$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
答案 0 :(得分:1)
与$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);