FancyTree: Как развернуть все вложенные/последующие узлы? Не только текущие узлы

#javascript #jquery #treeview #fancytree

Вопрос:

Когда я использую следующее действие Fancytree even:

 $(document).on('click', '.expand-all', function () {
                $.ui.fancytree.getTree().expandAll();
            });
 

введите описание изображения здесь

Fancytree расширяет только текущие узлы, но не более низкоуровневые вложенные узлы. Предположим, что следующее не произойдет в одно и то же время:

введите описание изображения здесь

Как мне добиться этого на одном мероприятии?

Комментарии:

1. можете ли вы сделать это работоспособным ?

Ответ №1:

Я понял это и сделал так:

 $(document).on('click', '.expand-all-nested', function (e) {
            expandNodes();

            function expandNodes() {
                $.ui.fancytree.getTree("#treegrid").visit(function (node) {
                    if (node.isLazy() amp;amp; !node.isExpanded() amp;amp; !node.isLoading()) {
                        node.setExpanded(true).done(() => {
                                console.log('Auto Expanding Children');
                                expandNodes()
                            }
                        ).catch(function (error) {
                            //Error occurred. Trying re-fetching data
                            console.log('Error occurred. Trying re-fetching data');
                            setTimeout(function () {
                                node.load(true).done(() => {
                                    console.log('Successfully Re-fetched errored data');
                                }).catch(function () {
                                    console.log('Couldn't Re-fetch errored data');
                                });
                            }, 700);
                        })
                    }
                });
            }
        });