我目前正在创建一个D3JS链,最后是一个.call()。这是我目前的链条
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调用。
发布于 2014-06-20 20:27:50
我自己解决了这个问题,并将留待将来有同样问题的人去帮助。我在问题中添加了一个编辑,以帮助为整个问题提供更多的上下文。
解决方案是,由于我的D3JS链是在驱动视图的模型最初设置时被调用的,所以DOM中没有任何东西可供D3选择。一旦DOM被呈现出来,并且一切都能够顺利运行,我就将链子移动到调用。
https://stackoverflow.com/questions/24333080
复制相似问题