首頁  >  問答  >  主體

angular.js - angular directive中調用highchart報錯

在指令中掉用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的循環

滿天的星座滿天的星座2735 天前644

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-05-15 16:57:01

    問題出在物件上,複製下物件就可以了

    回覆
    0
  • PHPz

    PHPz2017-05-15 16:57:01

    我覺得應該是你link裡的scope.$watch()

    回覆
    0
  • 取消回覆