Исключительная отложенная загрузка Fancytree: утверждение не выполнено: ожидаемый массив дочерних элементов
У меня есть существующее дерево, которое строится из JSON с 3-х уровневой иерархией.
Root -> ChildLevel1 -> ChildLevel2 (lazy = true)
Приведенные выше данные дерева загружаются в качестве источника при загрузке страницы. На данный момент все работает нормально. Теперь - на уровне ребенка2 Я пытаюсь заполнить детей на лету так:
lazyLoad: function (event, data) {
var json = "{children:[ {\"title\": \"Sub item\", \"lazy\": true }, {\"title\": \"Sub folder\", \"folder\": true, \"lazy\": true } ]}";
data.result = json;
}
Я продолжаю получать следующее исключение:
Uncaught Ошибка: утверждение Fancytree не удалось: ожидаемый массив дочерних элементов в Function.error (jquery-1.12.4.min.js:2) в _assert (jquery.fancytree.js:82) в jquery.fancytree.js:3242 в i (jquery-1.12.4.min.js:2) в Object.add [как сделано] (jquery-1.12.4.min.js:2) в Fancytree.nodeLoadChildren (jquery.fancytree.js:3229) в Fancytree._callHook (jquery.fancytree.js:2289) в FancytreeNode.load (jquery.fancytree.js:1229) в Fancytree.nodeSetExpanded (jquery.fancytree.js:3965) в Fancytree.nodeToggleExpanded (jquery.fancytree.js:4230)
1 ответ
Вы передаете строку JSON, которая определяет объект, но для плагина требуется "массив дочерних элементов". Пытаться:
lazyLoad: function (event, data) {
var res = [
{ title: "Sub item", lazy: true },
{ title: "Sub folder", folder: true, lazy: true }
];
data.result = res;
}