Как остановить просмотр в AngularJS?

Я могу настроить $watch в области AngularJS, чтобы получать уведомления, когда интересующее меня выражение изменилось. Но как я перестаю смотреть, как только потеряю интерес?

Ответ 1

При вызове $watch возвращается функция, которая отменяет регистрацию связанного выражения.

Например, просмотр переменной foo изменяется только один раз:

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

Надеюсь, что поможет: -)

Ответ 2

В качестве дополнительного комментария, но не ответа - это тот же принцип для убийства прослушивателей событий.

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

Просто добавление, которое, как я думал, было бы круто, если бы кто-нибудь еще знал...