【问题标题】:Angular & D3.js: Why is element[0] undefined?Angular & D3.js:为什么 element[0] 未定义?
【发布时间】:2016-09-21 19:21:23
【问题描述】:

我正在开发一个 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: element is not defined

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

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

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

【问题讨论】:

  • 那么element 是从哪里来的,它没有在发布的代码中的任何地方声明?
  • 这将是我问题的根源。 :)

标签: javascript angularjs d3.js


【解决方案1】:

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

function link(scope, element, attrs) {

【讨论】:

  • 谢谢Pankaj!很明显,我正在学习两者——这正是我所缺少的。
猜你喜欢
  • 1970-01-01
  • 2020-02-24
  • 2014-04-15
  • 1970-01-01
  • 2016-12-14
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多