dijit.tree как реализовать коллапс всей функциональности, используя только хранилище?

У меня есть ленивая загрузка dijit.tree, которую я хочу повторно использовать во многих местах после загрузки данных. Но если я просто заменил объект store на других деревьях тем, который содержит большинство данных, узлы все расширяются. Я хочу изменить хранилище, чтобы все элементы были свернуты, прежде чем устанавливать его как хранилище в новом дереве. можете ли вы сказать мне, как это сделать?

0

1 ответы

You cannot use the store for this, as it does not contain any information of the state of the tree nodes. This 'magic' is performed via TreeNode, see some examples here

«Идеальное решение» - это выяснить, какие пути вам нужно расширить, а затем установить путь вашего дерева, чтобы пройти в нужные treenodes.

However, since your lazyloading, you need to check the state - while initializing a tree it should be UNCHECKED. However there is a cookie-functionality inbuilt which probably is kicking in, make sure to create new tree's with { persist:false }

You could also extend your tree, so that it will accept collapseChildren(TreeNode) as follows - and then call tree.set("path", [pathsArray]);

collapseChildren : function(top) {
        var self = this;
        if(!top || !self.model.mayHaveChildren(top.item)) return;
        top.getChildren().forEach(function(n) {
                if(n.item.children) {
                        //dojo.style(n.getParent().containerNode, { overflowY: 'hidden', overflowX: 'hidden'});
                        self._collapseNode(n);
                        self.collapseChildren(n);
                }
        });
},

РЕДАКТИРОВАТЬ:

Если флаг autoExpand передается конструктору, дерево сначала отображается со всеми расширенными узлами.

     

Затем вы можете вызвать collapseAll() и expandAll (), чтобы свернуть и развернуть Дерево, соответственно.    http://livedocs.dojotoolkit.org/dijit/Tree-examples#id3 </р>

0
добавлено
посмотрите, что когда я устанавливаю только хранилище старого дерева в качестве хранилища нового дерева, я вижу, что узлы расширены точно так же, как и в предыдущем дереве. Поэтому я думаю, что он основан на магазине.
добавлено автор MozenRath, источник
они стреляют xhr, только если ребенок еще не заселен
добавлено автор MozenRath, источник
Спасибо тонну @ mschr!
добавлено автор MozenRath, источник
пытался использовать persist: false, как указано выше? Клики на дереве генерируют куки-файл для хранения древовидных путей между загрузками страниц, думая, что это может быть здесь одно и то же? Создает ли ваш вновь созданный огненный XHR дерева на «открытии» дочерних контейнеров?
добавлено автор mschr, источник
убедитесь, что флаг autoExpand имеет значение false, затем используйте tree.set («путь», [pathsArray]); , чтобы открыть те, которые хотите открыть
добавлено автор mschr, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing