2016-04-09 15 views
0

ハイチャート-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(){...} 
     ... 
     } 
関連する問題