我控制器存储阵列。当按下键盘上的特定快捷键时,我会向该阵列添加一个新对象。
该数组用于指令内部以显示图表。
因此,按快捷键时,图表应更新为新值。
控制器
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>
当页面负载第电子海图正确显示数据和控制台正确执行日志$watch
正确执行。
反正按$watch
,而阵列更新
我无法找到我的代码错误
尝试使用$ watchCollection而不是$ watch – George
@Sajeetharan它现在进入'$ watch()'内部,但产生这个错误'$ apply already progress' – Weedoze
@GeorgeLee它似乎工作。你可以请帖并回答解释吗? – Weedoze