2016-11-04 2 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

Внутри контроллера вы можете придать $element службу, чтобы получить доступ к template.

В идеале вы должны получить доступ к этому $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

Я пробовал, и я получаю '$ element' как' undefined' внутри '$ postLink'. Я что-то упускаю ? –

Смежные вопросы