#javascript #jquery #json #fancytree
Вопрос:
Я использую fancytree, у меня проблема с фильтром, когда имя узла-это всего лишь число, как показано на рисунке ниже
Когда я пытаюсь найти 700264, я получил эту ошибку в консоли, и я понятия не имею, делаю ли я что-то не так или это ошибка
Настройки фильтра
$("#treeMU").fancytree({
extensions: ["filter"],
quicksearch: true,
checkbox: true, // optional
keyboard: true, // Support keyboard navigation
source: {
url: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
},
filter: { // override default settings
autoExpand: true, // Expand all branches that contain matches while filtered
counter: true, // Show a badge with number of matching child nodes near parent icons
hideExpandedCounter: true, // Hide counter badge if parent is expanded
hideExpanders: true, // Hide expanders if all child nodes are hidden by filter
nodata: true, // Display a 'no data' status node if result is empty
mode: "hide" // Grayout unmatched nodes (pass "hide" to remove unmatched node instead)
},
});
Поисковый ввод
$("#TreeSearchMU").keypress(function(e){
if(e.which == 13) // the enter key code
{
$.ui.fancytree.getTree("#treeMU").filterBranches($("#TreeSearchMU").val());
}
});
Когда я пытаюсь добавить любой строковый символ к имени узла (точка, запятая, пробел и т. Д.), Чтобы он был похож
Фильтр отлично работает со строковым символом.
Кто-нибудь знает, что произошло и почему фильтр работает со строковым символом и не работает с числовым именем?
Окружающая среда
- Тип и версия браузера: Google Chrom Версии 94.0.4606.61
- Версии jQuery: 3.5.1
- Версия Fancytree: 2.38.0 включено/затронутые расширения: фильтр
Спасибо за все.
Комментарии:
1. Fancytree, похоже, предполагает, что node.title-это строка. Вам могло бы повезти больше, если бы вы смогли упорядочить эти числа.
2. @Джеймс Да, я могу ввести число в строку, но нет способа использовать его как есть
3. Вы должны быть в состоянии преобразовать данные, полученные из вашего API (изменить эти числа на строки), добавив функцию постпроцесса, ссылку на учебник
4. Я конвертирую числа в бэкэнд, используя метод построения strval() в php, и это работает