Я не слишком знаком с ExtJS, но я работаю над проектом, который его использует.ExtJS TreeLoader Issue
Мы используем TreePanel с TreeLoader, который загружает все данные узла с сервера за один вызов. У нас есть событие, в котором мне нужно получить доступ к атрибутам каждого узла в дереве. Способ, которым я это делаю, - использовать метод getNodeById TreePanel. Проблема в том, что панель дерева, похоже, лениво загружает узлы и не сможет получить узел с getNodeById, если узел уже не загружен.
Есть ли способ заставить все узлы загружаться? Самое близкое, что я пришел, - это использовать атрибут preloadChildren для TreeLoader, но он по-прежнему загружается только при загрузке родительского узла, содержащего детей.
Хм, это довольно много, как у нас это есть. Используя ваш пример, если я сделаю myTreePanel.getNodeById (3), он предоставит мне неопределенное значение, если только я не заставляю его загружать, расширив его родительский элемент (или щелкнув его родительский элемент с параметром preloadChildren, установленным в true в конфигурации загрузчика). –
Да, используя свои данные, я попытался следующие, который не работает: Var TreePanel = новые Ext.tree.TreePanel ({ ID: 'структура панели', погрузчик: новый Ext.tree.TreeLoader ({ dataUrl: 'data.html', preloadChildren: истинные, слушателей: { нагрузка: функция() { оповещения (treePanel.getNodeById ('3'));} }} ), корень : new Ext.tree.TreeNode ({ id: 'tree-root' }) }); treePanel.getLoader(). Load (treePanel.root); Предупреждение в обратном вызове загрузки будет иметь «undefined» –
Не могли бы вы отправить пример кода и пример ответа сервера с узлами? Благодарю. – ncardeli