0

在 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())

有理由选择一个而不是另一个吗?

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

嗯?

4

1 回答 1

0

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

我一直在使用闭包访问器。

于 2013-01-25T19:54:47.060 回答