У меня есть функция наблюдения в моем приложении AngularJS.
$scope.$watch('quartzCrystal', function () {
...
}
Однако после некоторого условия (в моем примере, изменения страницы в моем одностраничном приложении ) я хочу остановить это наблюдение (как очистка тайм-аута).
Как я могу это сделать?
javascript
angularjs
watch
kamaci
источник
источник
$on('$destroy')
), или AngularJS позаботится о них? Спасибо!scope. $ watch возвращает функцию, которую вы можете вызвать и которая отменяет регистрацию часов.
Что-то вроде:
источник
Вы также можете очистить часы внутри обратного вызова, если хотите очистить их сразу после того, как что-то произойдет. Таким образом, ваши $ watch будут оставаться активными до использования.
Вот так...
источник
Некоторое время ваш $ watch вызывает,
dynamically
и он будет создавать свои экземпляры, поэтому вам придется вызывать функцию отмены регистрации перед вашей$watch
функцией.источник
В идеале, все пользовательские часы должны быть удалены, когда вы покидаете область.
Это помогает улучшить управление памятью и повысить производительность приложений.
источник
Если у вас слишком много наблюдателей, и вам нужно очистить их все, вы можете поместить их в массив и уничтожить каждый
$watch
в цикле.источник
Для удаления копии наблюдателей вы можете использовать это:
источник