I can set up a $watch on an AngularJS scope to be notified when the expression I am interested in has changed. But how do I stop watching once I lose interest?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
When calling $watch
a function is returned that unregisters the bound expression.
E.g., to watch a variable foo
only change once:
var unregister = $scope.$watch('foo', function () {
// Do something interesting here ...
unregister();
});
Hope that helps :-)
回答2:
As an additional comment, but not answer - this is the same principle for killing event listeners as well.
var unregister = $rootScope.$on("listen-for-something-cool", function($event, params) {
//Do cool stuff with params, then kill it
unregister();
};
Just an addition I thought would be cool for anyone else to know...