我正在开发一个角度应用程序,并开始使用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
交谈,我认为这不是时间问题。但是,我不知道它还能是什么。非常感谢任何建议!
答案 0 :(得分:1)
目前您尚未在链接功能中指定element
,并且您正在寻找未定义的元素。您应该在element
函数中使用link
来访问角度编译的DOM。
function link(scope, element, attrs) {