在jsfiddle中从Ext JS调用D3

时间:2015-05-13 07:14:48

标签: javascript extjs d3.js

我有以下D3代码可以按预期工作。

``http://jsfiddle.net/6Ldad16n/3/

现在,我需要在Ext JS代码中运行它。所以我为这个

创造了另一个小提琴
``http://jsfiddle.net/07kk8fzs/

我相信在Ext JS中还需要其它东西才能使它工作,因为显示的结果是空白的,并且控制台中没有错误。

有人可以帮我解决这个问题吗。

谢谢

1 个答案:

答案 0 :(得分:1)

你不应该覆盖afterRender方法(它是一种私有方法,因此你不应该依赖它的存在),而是将它放在你的initComponent方法中:

this.on('afterrender', function(){
    this.loadScript(this.onD3Loaded, this);
}, this);

您的代码应该在没有此修改的情况下工作,但最佳做法是添加您自己的事件侦听器,而不是覆盖框架。

此外,您的代码只定义了您的d3.widgets.Treeview类,它没有实例化它。请尝试在Ext.define

之后将其添加到您的代码中
Ext.create('d3.widgets.Treeview', {
    renderTo : Ext.getBody()
});

我测试过将它添加到你的小提琴中,但其他东西会抛出错误,我不知道D3足以调试它