КонтекстWatch директива сфера не работает
мой контроллер хранит массив. При нажатии специальной клавиши на клавиатуре я добавляю новый объект в этот массив.
Массив используется внутри директивы для отображения диаграммы.
Таким образом, при нажатии на ярлык диаграмма должна обновляться с новым значением.
Контроллер
vm.observation = [{
"sale": "202",
"year": "2010"
}, {
"sale": "215",
"year": "2011"
}, {
"sale": "179",
"year": "2012"
}, {
"sale": "199",
"year": "2013"
}, {
"sale": "134",
"year": "2014"
}, {
"sale": "176",
"year": "2015"
}];
Директива
angular.module('spwApp.directives')
.directive('linechart', [function() {
return {
restrict: 'E',
scope: {
id: "@",
observation: "="
},
link: function($scope, element, attrs) {
$scope.$watch("observation", function(newVal, oldVal){
console.log("OBS : " + newVal);
}, true);
}
}
}])
HTML
<linechart id="linechart3" observation="vm.observation"></linechart>
При загрузке страницы й e chart правильно отображает данные, а консоль правильно регистрируется внутри $watch
.
В любом случае после нажатия ярлыка $watch
не срабатывает, тогда как массив обновляется
Я не могу найти ошибку в своем коде
Попробуйте использовать $ watchCollection вместо $ watch – George
@Sajeetharan Теперь он входит в '$ watch()', но генерирует эту ошибку '$ apply уже в процессе' – Weedoze
@GeorgeLee Кажется, что это работает. Не могли бы вы отправить сообщение и ответить с объяснением? – Weedoze