Leave a Comment
AngularJS: как следить за изменением значения произвольных функций
Иногда бывает нужно следить за значением, возвращаемым из функции, не привязанной к `$scope` (т.е. не являющейся его методом).
Допустим, есть некая сложная функция:
function getParams()
{
if (! map) {
return false;
}
var center = map.getCenter(),
size = map.getSize(),
markersList = exportMarkers();
return {
zoom: map.getZoom(),
lat: roundCoord(center.lat),
lng: roundCoord(center.lng),
minZoom: 3,
maxZoom: 18,
mapWidth: size.x,
mapHeight: size.y,
markers: markersList
};
}
Для того, чтобы отслеживать её изменения, нужно сделать так:
var scope = $rootScope.$new(true);
scope.$watch(function (scope) { return getParams();}, function () {
// do anything. for instance:
// $rootScope.$broadcast('params_changed');
}, true);
Продолжить чтение:
http://www.bennadel.com/blog/2658-using-scope-watch-to-watch-functions-in-angularjs.htm
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.