2016-09-12 3 views
0

В моей angularjs директивы я использовал следующий код для обнаружения изменений в этом и выполнять функцию следующим образом

$scope.$watch(angular.bind(this, function() { 
        return this.dat; 
       }), function (newVal) { 
     }) 

и В моем основном контроллере я звоню директиву следующим образом

<line dat=ctrl.testdata></line> 

Внутри моей основной контроллер я определил ctrl.testdata следующим

self.testdata = {}; 
self.testdata.dat = [ {'sdfds':'bbbb','sdfsd','lll'}] 
self.testdata.k = { 
    "c": ["0y", "w6"], 
    "rs": ["n", "i"] 
} 

newVal меняется, когда testdata.dat меняется, но он не меняется, когда testdata.k меняет, как я могу продолжить заблаговременно.

ответ

0

по умолчанию смотреть только равенство объекта - ваши тестовые данные одинаковы при редактировании его реквизита; Вы можете использовать другое обязательство, учитывая это или использовать глубокое равенство (низкая производительность);

$scope.$watch(angular.bind(this, function() { 
        return this.dat; 
       }), function (newVal) { 
     }, true) 
+0

Я одна небольшая проблема теперь testdata.dat получает повторяется много раз, как я остановить это – user93

+0

Не понимаю вашу проблему? Не могли бы вы описать это яснее или показать codepen.io –

Смежные вопросы