Я новичок в EXT, и у меня возникла проблема с перезагрузкой дерева EXT 4. Я пытался с:Ext4 reload tree
Ext.tree.getLoader().load(tree.root);
Ext.tree.load(tree.root);
Ext.tree.getRootNode().reload();
Ext.tree.TreePanel.root.reload();
Ext.data.TreeStore.reload();
И ничего не помогало, я надеюсь, что кто-то может разъяснить мне это, вот код: Edit: я добавил полный код, как вы можете видеть все внутри метода extOnReady, Я удалил вар перед тем вар дерева и до сих пор я получил тот же результат
Ext.QuickTips.init();
var store = Ext.create('Ext.data.TreeStore',{
proxy: {
type: 'ajax',
url: 'url1'
},
root: {
text: 'TOPP',
id: '1',
expanded: true
},
folderSort: true,
sorters: [{
property: 'text',
direction: 'ASC'
}]
});
tree = Ext.create('Ext.tree.Panel',{
id:'company_tree',
store: store,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop'
}
},
renderTo: 'tree-div',
height: 300,
width: 766,
title: gettext('Companies'),
useArrows: true,
dockedItems: [{
xtype: 'toolbar',
items: [ {
text: gettext('Collapse All'),
handler: function(){
tree.collapseAll();
}
}]
}]
});
var loadingMask = new Ext.LoadMask(Ext.get('tree-div'),{
msg: gettext("Loading...")
});
tree.on('itemmove', function(tree, oldParent, newParent, index, options){
if(confirm(gettext('Are you sure you want to move this company?'))){
loadingMask.show();
Ext.Ajax.request({
scope: this,
url: 'url2/',
success:function(){
loadingMask.hide();
},
params: {
'ajaxAction[moveNode]': '',
index: index,
nodeid: tree.data.id,
parentNodeID: newParent.data.id,
oldParentNodeID: oldParent.data.id
}
});
}else{
Ext.getCmp('company_tree').getStore.load();
}
});
Кроме того, я попытался перезагрузить через консоль [Ext.getCmp («company_tree») getStore.load();.], и она работала. Когда я пытаюсь его через код возвращает ошибку относительно функции зольной
n is null
[Break On This Error]
Ext.fly(n.firstChild ? n.firstChild : n).highlight(me.dropHighlightColor);
tree.getStore не является функцией [Перерыв об этой ошибке] \t tree.getStore() нагрузки(); У меня эта ошибка Я понимаю, что дерево - это объект, а Ext.tree.Panel - это класс. И я пытаюсь сделать это на объекте (дереве) –
Вы уверены, что 'tree' действительно является экземпляром' Ext.tree.Panel', когда вы вызываете 'getStore()' на нем? Добавьте 'console.log (tree)' над этим, чтобы узнать, что удерживает переменная 'tree'. –
@SrdjanRadisa также, если вы определяете 'var tree' внутри' Ext.onReady', переменная 'tree' _local_ будет по-прежнему не определена вне внешней среды' Ext.onReady', это ошибка, которую делают некоторые люди, когда они начинают сначала ExtJS. Это приведет к ошибке, например, 'tree.getStore не является функцией', потому что неопределенная переменная' tree' не имеет никаких функций. Вы можете сделать его глобальной переменной, удалив слово «var» в 'var tree =' или просто ссылаясь на него правильно, используя конфигурацию 'itemId' или' id' на вашем дереве. – Geronimo