在Ext JS 4.2中创建D3可折叠树



i具有以下D3代码,该代码可按预期工作。树是渲染的,可以在单击节点时扩展并崩溃。

现在,我需要在Ext JS代码中运行此操作。所以我为此创建了另一个小提琴

`

在Ext JS版本中,我无法折叠这棵树。崩溃需要从更新功能内部调用更新功能,这给出了一个错误

 this.update(d);

-

Uncaught TypeError: this.update is not a function

有人可以帮助我理解为什么会发生这种情况以及如何解决这个问题。

谢谢

您需要将范围存储在构造函数上的属性中,然后在更新功能中使用它来调用" update"。这是您修复的小提琴:http://jsfiddle.net/kqr57ad3/

Ext.define("d3.widgets.Treeview", {
        extend: 'Ext.Panel',
        alias: 'widget.d3_treeview',
        tree: '',
        svg: '',
        duration: 1000,
        diagonal: '',
        i: 0,
        me: null, 

        constructor: function (config) {
            console.log('1) Tree View Constructor called');
            this.callParent([config]);
            console.log("Treeview - constructor FINISH");
            me = this;
        },

然后在更新功能内使用此参考:

me.update(d);

最新更新