d3绑定元数据与闭包访问器

时间:2013-01-25 19:20:22

标签: d3.js

在d3中,您通常希望渲染一些数据,例如(x,y)对:

var points = [{x:1, y:2}, {x:3, y:4}]

并且您有一些关于渲染的元数据,例如它的宽度。

var width = 100

问题是,放置元数据的位置?

1:使用mbostock可重用图表中建议的闭包访问器http://bost.ocks.org/mike/chart/

selection.data(points).call(thing().width(width))

2:使用绑定数据,就像其他一切一样:

selection.data([{width: width, points: points}]).call(thing())

是否有理由选择其中一个?

闭包访问器方法似乎涉及更多样板。

是吗?

1 个答案:

答案 0 :(得分:0)

在我看来,闭包存取器更灵活。特别是,如果您将其绑定到数据,则必须在其余代码中单独处理 - 在thing()中,您需要提取points并将其传递给另一个data()调用绑定它们并为每个(或任何你想做的事情)附加元素。

我总是使用闭包访问器。