我可以在AngularJS范围上设置$ watch,以便在我感兴趣的表达式发生变化时得到通知。但是一旦我失去兴趣,我该如何停止观看?
答案 0 :(得分:140)
当调用$watch
时,返回一个取消注册绑定表达式的函数。
例如,观看变量foo
只改变一次:
var unregister = $scope.$watch('foo', function () {
// Do something interesting here ...
unregister();
});
希望有所帮助: - )
答案 1 :(得分:19)
作为附加评论,但没有回答 - 这也是杀死事件监听器的原则。
var unregister = $rootScope.$on("listen-for-something-cool", function($event, params) {
//Do cool stuff with params, then kill it
unregister();
};
只是一个补充,我认为对其他任何人来说都很酷......