我今天看到了一个代码注册观察者的代码如下:
scope.$watch(function() {
//some code which is not relevant in current context
});
Angular文档将$ watch方法指定为
$watch(watchExpression, listener, [objectEquality]);
那么没有听众的观察者的用法是什么
提前致谢
答案 0 :(得分:4)
scope.$watch(function() {
//some code which is not relevant in current context
});
是一种模式,可用于每个摘要运行一次代码。它相当于:
scope.$watch(function(){
}, undefined);
来自docs:
如果您想在每次调用$ digest时收到通知,您可以 注册一个没有监听器的watchExpression函数。 (以来 当a表示每个$ digest周期时,watchExpression可以多次执行 检测到更改,准备好多次调用听众。)
答案 1 :(得分:0)
你不需要表达式你可以使用一个函数来返回要监视的var,而不是在字符串中指定它,例如:
$scope.myVar = true;
$scope.$watch(function() {
return $scope.myVar
}, function(newValue, oldValue) {
});