У меня есть свойство функции, которое запускается, когда я перетаскиваю поле div
(gridster). Функция не вызывает никаких проблем, поскольку я могу видеть ее каждый раз в console.log(). Но я не могу представить функцию $watch
er на функции. Я хочу наблюдать за start
, drag
и/или stop
свойство всякий раз, когда он вызывается в следующем объекте:
$scope.gridsterOpts = {
draggable: {
start: function(event, $element, widget) {console.log('started: ' + JSON.stringify(widget));},
drag: function(event, $element, widget) {console.log('moved: ' + JSON.stringify(widget));}, // optional callback fired when item is moved,
stop: function(event, $element, widget) {logWidget(widget);}
}
}
Это то, что я пробовал:
$scope.$watch("gridsterOpts.draggable.start", function(newValue, oldValue) {
console.log('gridsterOpts changed')
}, true);
Может ли кто-нибудь сказать мне правильный способ реализации службы $ watch?
Я думаю, вы можете сделать что-то вроде этого:
$scope.$watch(function() {return $scope.gridsterOpts.draggable.start}, function(newValue, oldValue) {
console.log('gridsterOpts changed')
}, true);
$watch
будет срабатывать только при$scope.gridsterOpts.draggable.start
значения$scope.gridsterOpts.draggable.start
. Слушатель$watch
не будет срабатывать при вызове функции.