2016-04-09 50 views
0

我有一個包含highchart-ng的指令,我需要從我的服務中更新指令中的系列數據以獲取數據。Highchart-ng不在指令內顯示

我得到了它沒有服務工作 - 基本工作原理https://jsfiddle.net/w657bcdp/

但是,如果更新我的服務裏面的系列,這是行不通的。調試器顯示正在加載的圖表系列數據,但不顯示。

... 
var defer = $q.defer(); 
defer.resolve(DashbboardSrv.loadStats()); 

defer.promise.then(function(resp){ 


    ... 

    var data = [ 
        [Date.UTC(1970, 9, 18), 0 ], 
        [Date.UTC(1970, 9, 26), 0.2 ], 
        [Date.UTC(1970, 11, 1), 0.47], 
        [Date.UTC(1970, 11, 11), 0.55], 
        [Date.UTC(1970, 11, 25), 1.38], 
        [Date.UTC(1971, 0, 8), 1.38], 
        [Date.UTC(1971, 0, 15), 1.38], 
        [Date.UTC(1971, 1, 1), 1.38], 
        [Date.UTC(1971, 1, 8), 1.48], 
        [Date.UTC(1971, 1, 21), 1.5 ], 
        [Date.UTC(1971, 2, 12), 1.89], 
        [Date.UTC(1971, 2, 25), 2.0 ], 
        [Date.UTC(1971, 3, 4), 1.94], 
        [Date.UTC(1971, 3, 9), 1.91], 
        [Date.UTC(1971, 3, 13), 1.75], 
        [Date.UTC(1971, 3, 19), 1.6 ], 
        [Date.UTC(1971, 4, 25), 0.6 ], 
        [Date.UTC(1971, 4, 31), 0.35], 
        [Date.UTC(1971, 5, 7), 0 ] 
       ]; 


       scope.chartConfig.series = [{ 
         type: 'area', 
         name : 'votes', 
         data: data, 
         tooltip: { 
          valueDecimals: 2 
         } 
         }] 
} 
, function (err) { 
    console.trace(err.message); 
}) 

任何想法爲什麼會發生這種情況?

+0

如何改變系列? – kabaehr

+0

@kabaehr - 'scope.chartConfig.series = [...'就像我的代碼中的代碼片段 –

+0

也許像你在jsfiddle做的超時將工作 – kabaehr

回答

0

顯然我在我的指令鏈接函數中發現了這個問題。我已經將上面的代碼封裝在鏈接函數本身的一個函數中,可能會導致AngularJS中的問題。

的解決方案是創建範圍功能:

... 
link: { 
     pre: function(scope, element, attrs) {     

       scope.chartConfig = {...} 

       scope.loadStats();  //loadStats() wont' work. 


       scope.loadStats = function(){...} 
     ... 
     }