2016-09-21 3 views
1

Я работаю над угловым приложением и только начинаю работать с D3.js.Angular & D3.js: Почему элемент [0] не определен?

Я следую инструкциям по созданию пользовательских директив.

<my-chart></my-chart> 

Я делаю это:

... 

.directive('myChart', function() { 
    function link() { 
     var svg = d3.select(element[0]).append('svg'); 

     ... 

    return { 
     'link': link, 
     'restrict': 'E' 
    } 
}) 

... 

Но я всегда получаю обратно ReferenceError: element is not defined

Если я даю мое указание идентификатор, то все работает:

... 
var svg = d3.select(document.getElementById('myChart')).append('svg'); 
... 

I Я не знаю, почему, поскольку я могу поговорить с element, когда у меня есть i d, я не думаю, что это проблема времени. Но я не знаю, что еще может быть. Любые предложения приветствуются!

+1

И где «элемент» исходит, он не объявлен нигде в опубликованном коде? – adeneo

+0

Это будет корень моей проблемы. :) – Damon

ответ

1

В настоящее время вы не указали element в функции связи, и вы искали элемент, который не определен. Вы должны иметь element в своей функции link, чтобы получить доступ к угловому скомпилированному DOM.

function link(scope, element, attrs) { 
+0

Спасибо Панкай! Мне больно очевидно, что я изучаю оба - это было именно то, чего мне не хватало. – Damon

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