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);