2016-11-04 14 views
0

私はangularJs(v1.5.8)を使用してグラフを初期化しようとしていますが、instructionsテンプレート内の要素への参照を取得する方法

var ctx = document.getElementById("myChart"); 
var myChart = new Chart(ctx, { ... 
に示したように、私は以下のような新しいグラフオブジェクトを初期化することができません

テンプレートのhtml要素への参照を取得できないためです。それを得る方法?お使いのコントローラ内部

angular.module("dashboard", ['ngAnimate', 'ngSanitize', 'ui.bootstrap']) 
.component("exceptionChart", { 
    template: "<canvas class='{{$ctrl.class}}'></canvas>", 
    bindings: { class: '@' }, 
    controller: function(){ 
     // how do I get a reference to canvas 
    } 
}); 

答えて

1

あなたはtemplateへのアクセスを得るために$elementサービスを注入することができます。

$element$postLink()コンポーネントのライフサイクルフックにアクセスし、すべての子孫ディレクティブがコンパイルされていることを確認するのが理想的です。

controller: function($element){ 
    // how do I get a reference to canvas 
    this.$postLink = function() { 
     console.log($element) 
    } 
} 
+0

「$ element」の中には何を探していますか?この '$ element [0] .children [0]'ですか? –

+0

'$ element.find( 'canvas)'は細かいはずです –

+0

私はそれを試しましたが、 '$ post'の中で' $ element'を 'undefined'としています。何か不足していますか? –

関連する問題