用可重用图表链接的方法

时间:2014-02-10 19:14:57

标签: javascript d3.js closures chaining

在尝试按照原则from Mike使用我的d3图表链接方法时,我收到错误TypeError: Cannot read property 'length' of undefined。我的图表看起来像

 function generateTimeline() {
     var width = 800;
     ...
     function timeline(selection) {
        ...
     }
    timeline.width = function(_) {
        if(!arguments.length) return width;
        width = _;
        return chart;
    }
    return chart
 }

我可以致电

    var chart = generateTimeline();

    d3.select('body')
        .datum(dataSet)
        .call(chart);

正确生成图表。我甚至可以调用返回800的chart.width()。但是,尝试使用

var chart = generateTimeline().width(600)

d3.select('body')
    .datum(dataSet)
    .call(chart);

抛出错误。我应该注意,在尝试call(chart)之前不会抛出错误。

0 个答案:

没有答案