为什么在使用d3创建AngularJS指令时使用element[0]而不是element ?

Why use element[0] instead of element when creating AngularJS directive with d3?

本文关键字:element d3 创建 AngularJS 指令 为什么      更新时间:2023-09-26

似乎你必须使用element[0]时,创建一个指令与D3,例如,如下所示:

app.directive('firstTry', function () {
    function link(scope, element, attrs) {
        var sampleSVG = d3.select(element[0])
        ...

那么,为什么是element[0]而不是element呢?名称element表明它是单个对象而不是数组,但显然情况并非如此。另一个问题:这个element还有什么?

顺便说一句,任何关于这件事的官方参考资料都会很有帮助。

要修改DOM的指令通常使用link选项。link接受一个签名如下的函数,function link(scope, element, attrs) { ... } where:

  • scope是一个Angular作用域对象。
  • element是这个指令匹配的jqlite包装元素。
  • attrs是一个哈希对象,包含规范化属性名称的键值对及其对应的属性值。

你可以在这里的文档中找到它。所以键htmlElement实体-获取集合的第一个成员