Dynatree: как сделать узел, содержащий ленивых детей, расширяемым? - PullRequest
1 голос
/ 19 сентября 2011

Я создал древовидное меню навигации с помощью Dynatree (http://wwwendt.de/tech/dynatree/index.html). Дерево имеет четыре уровня: компания, группа, пользователь и компьютер. Каждый объект в дереве доступен для выбора (при выборе объекта открывается страница, отображающая свойства этого объекта), и каждый объект может иметь дочерние объекты, за исключением объектов уровня 4 («компьютер»).

Теперь я попытался сделать дерево загруженным в соответствии с инструкциями в документации: http://wwwendt.de/tech/dynatree/doc/dynatree-doc.html#lazyLoading Для содержимого первого уровня, загружаемого из фона, для параметра isLazy установлено значение true, и я добавил обратный вызов onLazyRead в дерево.

Что мне нужно из дерева: первый уровень всегда загружается, но расширение объекта первого уровня с помощью символа [+] расширяет объект первого уровня и загружает базовые объекты (группа, пользователь, компьютер) в фоновом режиме. Загрузка дерева работает в том смысле, что я вижу элементы первого уровня, но проблема в том, что

  1. знак [+] не отображается, если у узла нет дочерних элементов
  2. если у узла есть дочерние элементы, событие onLazyRead не выполняется

Это похоже на уловку-22, так как, похоже, нет возможности сделать узел расширяемым, если у него нет дочерних элементов, что делает невозможной загрузку дерева. Чего мне не хватает?

1 Ответ

2 голосов
/ 19 сентября 2011

Если ваш сервер доставляет узлы, загружаемые с отложенной загрузкой, вы должны установить для атрибута node.isLazy значение true.

...