如何在AngularJS中停止观看?

时间:2013-03-30 06:24:24

标签: angularjs angularjs-scope

我可以在AngularJS范围上设置$ watch,以便在我感兴趣的表达式发生变化时得到通知。但是一旦我失去兴趣,我该如何停止观看?

2 个答案:

答案 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();
};

只是一个补充,我认为对其他任何人来说都很酷......