在指令中掉用highchart报错了245个错,报错内容是 illegal invocation 和 digest 循环达到上限,代码如下
.directive('highchart',function($timeout){
return{
restrict:'E',
template:'<p></p>',
scope:{
config:'='
},
link:function(scope, ele, attr) {
var handle;
scope.$watch('config',function(cfg){
if(handle){
$timeout.cancel(handle);
}
handle = $timeout(function(){
console.log(ele.find('p'),scope.config)
ele.find('p').highcharts(scope.config)
},250)
})
}
}
})
我在chrome的控制台里把log的变量调用是没报错的,highchart动作何处触发了angular的循环
問題はオブジェクトにあります。オブジェクトをコピーするだけです
リンク内の $watch()
にすべきだと思います