本例是通过MVVM结构实现的。
ViewController:
刷新函数:
onRefreshTreeMenuPanel: function () {
var me = this;
var appSpaceTree = me.lookupReference('applisttreemenupanel');
var store = appSpaceTree.getStore();
var selectedNode = appSpaceTree.getSelectionModel().getSelection()[0];
var path = selectedNode.getPath('ID');
var loadNode = store.getNodeById(selectedNode.id);
var parentElement = store.getNodeById(selectedNode.id).parentNode;
if (selectedNode.id !== 'root' ) {
if (parentElement.id !== 'root') {
loadNode = store.getNodeById(selectedNode.id).parentNode;
} else {
if (me.view.treeNodeAction === 'delete') {
loadNode = store.getRoot();
me.view.treeNodeAction = null;
}
}
} else {
loadNode=store.getRoot();
}
<span style="color:#ff0000;"> ㈠ </span> store.load({
node: loadNode,//设置要刷新的树节点
<span style="color:#ff0000;">㈢ </span> callback: function (records, operation, success) {
if (success === false) {
AppSquare.resource.Manager.onResponseFailed(operation.error.response);
} else {
appSpaceTree.expandPath(path, { //成功取得store后,展开刷新前的节点并选中
field: 'ID',
callback: function (success, record) {
if (success === true) {
appSpaceTree.getSelectionModel().select(record);
}
}
});
}
}
});
},
treePanelBeforeLoad:
<span style="color:#ff0000;">㈡ </span> TreePanelBeforeLoad: function (store, operation) {
if (operation.node.data.id !== 'root') {
store.getProxy().extraParams.appspaceid = operation.node.data.ID;
} else {
if (Ext.isEmpty(store.getProxy().extraParams)===false) {
store.getProxy().extraParams.appspaceid = '/';
}
store.allAppsInserted = false;
}
},