Поисковый запрос jsTree только для дочерних узлов

Я использую jsTree с плагином поиска. Теперь я хочу, чтобы поиск соответствовал только дочерним узлам, а не родительским узлам.

Вот что я реализовал:

"search": {
        case_insensitive: true,
        show_only_matches: true,
        search_leaves_only: true,
    }

Вот пример моего дерева:

▼ Parent1
    └ child 1
  ParentABC
▼ Parentxyz
    └ child abc

ParentABC не имеет дочернего узла, и если я ищу "abc", оба ParentABC а также child abc показано, но ожидаемый результат должен был быть child abc только.

search_leaves_only: true отлично работает на дочерних узлах, потому что они сами не имеют дочерних узлов. jsTree считает узел листом, если у него нет дочернего узла.

Так каким образом я могу сделать свой поисковый запрос только для дочерних узлов?

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

Я просто должен был использовать search_callback с пользовательской функцией. Вот:

"search": {
        show_only_matches: true,
        search_callback: function (searchString, node) {
            if (node.parent != "#" && node.text.toUpperCase().includes(searchString.toUpperCase()) == true) {
                return node;
            }
        }
    }    

Я заполняю свое дерево данными JSON, и все мои родительские узлы имеют атрибут parent как "#", case_insensitive: true больше не работает, поэтому пользуюсь toUpperCase()

0 ответов

Другие вопросы по тегам