1

我的应用程序有两个可编辑的TreePanel,每个都显示一棵树,因此每个都有自己的TreeStore定义。最初,这些商店的数据完全相同 - 从服务器加载的大型 JSON 树。所以最好不要发出两个 HTTP 请求,加载相同的 JSON 树,因为这是一个非常昂贵的操作。

请注意,这两个 TreePanel 的基础 TreeStore 对象必须不同。否则,一个面板中的更改将立即级联到另一个面板。

但是,有谁知道是否有可能避免发出两个 HTTP 请求并以某种方式将加载的数据传递给一个 TreeStore 到另一个?

非常感谢任何建议。谢谢!

4

1 回答 1

0

在这里找到了答案:

http://www.clintharris.net/2011/how-to-use-extjs-4-treepanels-with-both-static-data-and-model-stores/

诀窍是在第二个 TreeStore 上使用 setRootNode() 方法并传入数据。为了从第一个 TreeStore 中获取数据,我最终只是递归地遍历树并构造它的字符串 JSON 表示。然后使用 Ext.decode() 方法将其转换回对象。这种相互转换是相当浪费的,但是 deep copy() 不起作用 - ExtJS 中的错误。无论如何,这仍然比访问服务器快得多。

于 2013-03-06T07:04:30.763 回答