【发布时间】:2015-03-04 05:03:19
【问题描述】:
我今天看到一个注册观察者的代码如下:
scope.$watch(function() {
//some code which is not relevant in current context
});
Angular 文档将 $watch 方法指定为
$watch(watchExpression, listener, [objectEquality]);
那么没有监听器的观察者有什么用
提前致谢
【问题讨论】:
我今天看到一个注册观察者的代码如下:
scope.$watch(function() {
//some code which is not relevant in current context
});
Angular 文档将 $watch 方法指定为
$watch(watchExpression, listener, [objectEquality]);
那么没有监听器的观察者有什么用
提前致谢
【问题讨论】:
scope.$watch(function() {
//some code which is not relevant in current context
});
是一种模式,可用于每个摘要运行一次代码。相当于:
scope.$watch(function(){
}, undefined);
来自docs:
如果您想在调用 $digest 时收到通知,您可以 注册一个没有监听器的 watchExpression 函数。 (自从 watchExpression 可以在每个 $digest 周期执行多次,当 检测到变化,准备好多次调用你的监听器。)
【讨论】:
你不需要表达式你可以使用函数来返回要观察的变量,而不是在字符串中指定它,例如:
$scope.myVar = true;
$scope.$watch(function() {
return $scope.myVar
}, function(newValue, oldValue) {
});
【讨论】: