Tag Archives: watch

AngularJS: как следить за изменением значения произвольных функций

Иногда бывает нужно следить за значением, возвращаемым из функции, не привязанной к $scope (т.е. не являющейся его методом). Допустим, есть некая сложная функция:

Для того, чтобы отслеживать её изменения, нужно сделать так:

Продолжить чтение: http://www.bennadel.com/blog/2658-using-scope-watch-to-watch-functions-in-angularjs.htm

AngularJS: $watch за объектами

Чтобы не вызывалась лишний раз функция, нужно добавить еще один параметр true в $watch:

Но он иногда запускает обработчик, поэтому можно сделать внутри дополнительную проверку:

AngularJS: почему не надо назначать обработчики на $rootScope внутри контроллеров

Вот здесь — https://blog.bullgare.com/2013/09/angularjs-%D0%BE%D1%82%D0%B2%D1%8F%D0%B7%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2-%D0%B8-%D1%80%D0%B0%D1%81%D1%81%D1%83%D0%B6%D0%B4/ подробно описано, как сложно всё выходит, если внутри контроллера повесить обработчик на события в $rootScope. Вкратце — потому, что при смене маршрута обработчик события никуда не девается, и его приходится руками удалять. Простое решение проблемы — вешать обработчики не на $rootScope, а на локальный $scope, который потом удалится вместе со всеми …

Read more

AngularJS: отвязывание обработчиков и рассуждение об опасностях использования вложенных контроллеров

В нашем приложении (чего уж тут скрывать — http://m.mamba.ru, тач-версия) всё построено на встроенных в angular маршрутах. При этом, как известно, шаблон страницы отрисовывается внутри тега ng-view. Появилось несколько страниц, на которых внутри контента (это важно) нужно показывать баннер.

Object.watch

Возможность наблюдать за изменениями свойств объекта. Описание — https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/watch#Examples, http://dailyjs.com/2012/11/12/code-review-watch-js/. Object.watch-polyfill — https://gist.github.com/384583. Известная в узких кругах библиотека для отслеживания изменений свойств объекта — https://github.com/melanke/Watch.JS.