我正在开发一个 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/