2017-06-09 1 views
0

J'ai une arborescence existante qui se base sur JSON avec une hiérarchie à 3 niveaux.Exception de chargement paresseux de Fancytree: échec de l'assertion: tableau d'enfants attendu

Root -> ChildLevel1 -> ChildLevel2 (paresseux = true)

Les données d'arbre ci-dessus est chargé en tant que source sur pageload, tout fonctionne très bien à ce point.Now -. Sur childlevel2 Je suis en train de remplir les enfants à la volée en tant que tel:

lazyLoad: function (event, data) {    
       var json = "{children:[ {\"title\": \"Sub item\", \"lazy\": true }, {\"title\": \"Sub folder\", \"folder\": true, \"lazy\": true } ]}"; 
       data.result = json; 
      } 

Je continue à recevoir l'exception suivante:

Uncaught Error: Fancytree assertion failed: expected array of children at Function.error (jquery-1.12.4.min.js:2) at _assert (jquery.fancytree.js:82) at jquery.fancytree.js:3242 at i (jquery-1.12.4.min.js:2) at Object.add [as done] (jquery-1.12.4.min.js:2) at Fancytree.nodeLoadChildren (jquery.fancytree.js:3229) at Fancytree._callHook (jquery.fancytree.js:2289) at FancytreeNode.load (jquery.fancytree.js:1229) at Fancytree.nodeSetExpanded (jquery.fancytree.js:3965) at Fancytree.nodeToggleExpanded (jquery.fancytree.js:4230)

Répondre

1

Vous êtes p assertion d'une chaîne JSON qui définit un objet, mais le plugin nécessite un "tableau d'enfants". Essayez:

lazyLoad: function (event, data) {    
    var res = [ 
    { title: "Sub item", lazy: true }, 
    { title: "Sub folder", folder: true, lazy: true } 
    ]; 
    data.result = res; 
}