如何在AngularJS中停止收看$?

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

当调用$watch会返回一个函数来取消注册绑定expression式。

例如,要观看一个variablesfoo只能改变一次:

 var unregister = $scope.$watch('foo', function () { // Do something interesting here ... unregister(); }); 

希望有帮助:-)

作为一个额外的评论,但不能回答 – 这也是杀死事件监听者的原理。

 var unregister = $rootScope.$on("listen-for-something-cool", function($event, params) { //Do cool stuff with params, then kill it unregister(); }; 

只是一个补充,我认为将是很酷的其他人知道…