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())
是否有理由选择其中一个?
闭包访问器方法似乎涉及更多样板。
是吗?
答案 0 :(得分:0)
在我看来,闭包存取器更灵活。特别是,如果您将其绑定到数据,则必须在其余代码中单独处理 - 在thing()
中,您需要提取points
并将其传递给另一个data()
调用绑定它们并为每个(或任何你想做的事情)附加元素。
我总是使用闭包访问器。