检索数据绑定d3

时间:2013-01-03 08:29:08

标签: javascript plugins d3.js

我正在尝试创建一个d3插件,这个stackoverflow问题:

How to make a d3 plugin?

但在他展示的例子中

(function() {
    d3.selection.prototype.editable = d3.selection.enter.prototype.editable = function() {
        return this.attr('data-editable', true);
      };
})();

我看不出他如何能够实际检索与选择相关的数据。这个甚至可以通过d3.selection的扩展来检索吗?我通过d3源略微扫描了一下,但发现自己比以前更加困惑了。

编写d3扩展程序/插件的人可以指导我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

在javascript中,this引用的对象(通常在上面的示例代码中)由调用this出现的函数的对象确定。

因此,行return this.attr('data-editable', true);将返回调用editable的完全相同的d3选择对象。

因此,您将恢复正常的旧d3选择对象,就像在普通的d3方法链接模式中一样。完成后,获取数据为just a matter of looking up the API for the d3 selection object.

如果您对如何获取数据感兴趣,请查看数据方法。从上面的链接,当没有参数调用该方法时:

  

如果未指定值,则此方法返回数据数组   对于选择中的第一组。返回数组的长度   将匹配第一组的长度和每个数据的索引   在返回的数组中将匹配相应的索引   选择。如果选择中的某些元素为null,或者如果   他们没有相关的数据,然后是相应的元素   数组将是未定义的。