ExtJS4
Я создал TreePanel как
var tree = Ext.create('Ext.tree.TreePanel', <some config>);
tree.store.setRootNode(treeJSON);
Теперь я хочу создать другое дерево с теми же данными хранилища, но с другими объектами хранилища. Если я сделаю это:
var tree1 = tree.cloneConfig(<separate listeners>);
Затем он создает другое дерево. Но все же оба связаны. Когда я сворачиваю или расширяю один узел дерева, соответствующий узел в другом дереве также ведет себя аналогично.
Для хранилища также нет свойства cloneConfig, чтобы я мог его продублировать. Я попытался воссоздать магазин из JSON для этого дерева.
var store2 = Ext.create('Ext.data.TreeStore', {store: treeJSON});
var tree1 = tree.cloneConfig({store: store2});
Я думал, что store2
будет отличаться от магазина tree
s. Но проблема была там, так как я использовал тот же treeJSON.
Одна вещь, которую я могу сделать, это преобразовать JSON в строку, декодировать ее, чтобы создать другой объект JSON и назначить его новому хранилищу. Это будет отличаться от предыдущего магазина. Но для этого должен существовать быстрый способ.
Как создать дубликат дерева с разными объектами хранилища, чтобы при развертывании/сворачивании одного узла в дереве он не разворачивался/сворачивался таким же образом в другом?