Как создать функцию $ watch, которая прослушивает вложенное свойство?

0

У меня есть свойство функции, которое запускается, когда я перетаскиваю поле 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?

  • 0
    Чего ты пытаешься достичь? Функция прослушивания $watch будет срабатывать только при $scope.gridsterOpts.draggable.start значения $scope.gridsterOpts.draggable.start . Слушатель $watch не будет срабатывать при вызове функции.
  • 0
    это объясняет, почему console.log не показывает, есть ли возможность вызвать службу наблюдения при простом вызове функции?
Показать ещё 3 комментария

1 ответ

0

Я думаю, вы можете сделать что-то вроде этого:

$scope.$watch(function() {return $scope.gridsterOpts.draggable.start}, function(newValue, oldValue) {
            console.log('gridsterOpts changed')
        }, true);
  • 0
    нет, это не вызвало console.log!
  • 0
    Извините, я забыл $ на прицеле
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню