Angular& D3.js:为什么元素[0]未定义?

时间:2016-09-21 19:21:23

标签: javascript angularjs d3.js

我正在开发一个角度应用程序,并开始使用D3.js。

我正在学习创建自定义指令的教程。

<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

如果我给我的指令一个id,那么一切正常:

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

我不确定为什么因为我能够在element有ID时与SELECT交谈,我认为这不是时间问题。但是,我不知道它还能是什么。非常感谢任何建议!

1 个答案:

答案 0 :(得分:1)

目前您尚未在链接功能中指定element,并且您正在寻找未定义的元素。您应该在element函数中使用link来访问角度编译的DOM。

function link(scope, element, attrs) {