У меня много проблем с деревьями ext5, поэтому я решил опубликовать здесь и посмотреть, что вы, ребята, заметили, и, надеюсь, помочь вам с этими ошибками 5.0.0...
TreeStore загружается дважды, если я установил для него значение
autoload:true
. Из-за этого он каким-то образом дублирует узлы, показанные на панели дерева, вызывая всевозможные проблемы/ошибки...
Итак, при создании обходного пути я установил для TreeStore значение
autoload:false
и попытался просто захватить магазин и загрузить его после того, как представление было отрисовано. [потерпеть неудачу]. TreeStore загружается только один раз, но на самом деле дерево не отображается. Опять же, ничего не изменилось, за исключением того, что хранилище было отключено от автозагрузки, и добавлено это в контроллер:
var s = Ext.getStore('myStore');
s.load();
Ни одно дерево не покрасят...
Итак, обходной путь номер два (УЖАСНОЕ решение) — пусть магазин загружается автоматически (с двумя прокси-вызовами), но после рендеринга дерева удаляет все данные, а затем снова загружает магазин вручную.
(in the store)
...
autoload: true
...
(in the controller)
...
var s = Ext.getStore('myStore');
s.removeAll();
s.load();
...
Шазам! Дерево загружается в последний раз, и данные представлены только один раз! Без дублирования!!
Однако теперь все расширяющееся и схлопывающееся сломано. Никакие события не запускаются, расширение и свертывание узлов не работает... Может быть, свертывание/развертывание уже было нарушено?
Установите autoload:true, выньте код контроллера.
TreeStore загружается дважды; дубликаты узлов в древовидной панели; развернуть/свернуть работают правильно.