D3JS .call()例外

时间:2014-06-20 17:56:51

标签: javascript d3.js

我目前正在创建一个带有.call()的D3JS链。这是我目前的链

foo.selectAll('svg')
    .data(data)
    .enter()
    .append('svg')
    .classed('someclass', true)
    .call(someFunc);

当它到达.call()时,它进入D3JS函数

d3_selectionPrototype.call = function(callback) {
    var args = d3_array(arguments);
    callback.apply(args[0] = this, args);
    return this;
};

this不包含任何内容,只有message: Cannot read property length of undefined才会返回。不幸的是,这种情况偶尔会发生。任何人都知道为什么或如何发生这种情况?

修改

我正在使用一个实现视图合成的javascript框架。当首次调用驱动视图的模型时,将进行当前的D3JS调用。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题,并将继续帮助那些可能在将来遇到同样问题的人。我在问题中添加了 EDIT ,这样就有助于为完整问题提供更多背景信息。

解决方案是,由于在驱动视图的模型最初设置时我的D3JS链被调用,所以在DOM中没有任何东西可以选择D3。一旦DOM被渲染并且一切都能够顺利运行,我就移动了要调用的链。