javascript - Angular 和 D3.js : Why is element[0] undefined?

标签 javascript angularjs d3.js

我正在开发一个 Angular 应用程序,并且刚刚开始使用 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:元素未定义

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

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

我不知道为什么,因为当元素有一个id时我能够与它交谈,我不认为这是一个计时问题。但是,我不知道它还能是什么。非常感谢任何建议!

最佳答案

目前您尚未在链接函数中指定element,并且您正在寻找未定义的元素。您应该在 link 函数中包含 element 才能访问 Angular 编译的 DOM。

function link(scope, element, attrs) {

关于javascript - Angular 和 D3.js : Why is element[0] undefined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39624916/

相关文章:

angularjs - Angular Bootstrap Dropdown 在 Angular Fullstack 中不起作用

angularjs - 从内部 ng-repeat 访问 ng-repeat $index

javascript - D3--如何迭代颜色数组

d3.js - 如何更新d3中圆环图的innerRadius和outterRadius?

javascript - 如何使用 .textContent 从选定的 div 获取文本(不包括其子文本)

javascript - 如何在javascript中减去小时?

javascript - getDocument by id/从按钮获取输入文本不起作用

angularjs - angularJs 中的后续 ajax 调用

javascript - 将标题放在 D3 svg 元素中 slider 上方

javascript - 如何使用 UI-router 将对象传递到状态?