2012-08-18 1 views
4

Ma question est: Comment puis-je charger le TreeStore à la fois? Parce que maintenant, si j'utilise proxy, pour obtenir Tree, après le rendu, quand je développe le leaf, il y a une requête de plus avec le paramètre GET 'node' - l'identifiant du noeud feuille. J'ai donc besoin de responcez l'arbre de cette feuille ... mais je veux charger TOUT arbre en même temps et plus de demandes pour cet arbre.Chargez TreeStore à la fois. Etxjs 4

En ce moment, j'ai les code:

Ext.define('AdminPanel.TreeNavigation', {    
     extend: 'Ext.data.Model', 
     fields: ['id', 'text', 'leaf', 'children'] 
    }); 


    var store = Ext.create('Ext.data.TreeStore', { 

        model: 'AdminPanel.TreeNavigation', 

        proxy: { 
         type: 'ajax', 
         url : 'admin/getTreeNav', 
         reader: { 
          type: 'json', 
          root: 'result' 
         } 
        }, 

        root: { 
         expanded: true 
        } 

       }); 
+0

La même question a été résolue dans ce fil: http://www.sencha.com/forum/showthread.php?237870-Load-TreeStore-at-once.-Etxjs-4&p=873775#post873775 –

Répondre

2

En magasin, je définis la racine du lecteur à la suite'.

Mais dans le json_data j'ai envoyé l'attribut 'enfants', comme ça:

{ 
    "result": [{ 
     "text": "\u041d\u043e\u0432\u043e\u0441\u0442\u0438", 
     "leaf": true, 
     "children": [] 
    }, { 
     "text": "\u0410\u043a\u0446\u0438\u0438", 
     "leaf": true, 
     "children": [] 
    }, { 
     "text": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438", 
     "leaf": true, 
     "children": [] 
    }, { 
     "id": "lang", 
     "text": "\u042f\u0437\u044b\u043a", 
     "leaf": false, 
     "children": [{ 
      "text": "\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b", 
      "leaf": true, 
      "children": [] 
     }] 
    }] 
} 

Mais besoin comme ceci:

{ 
    "result": [{ 
     "text": "\u041d\u043e\u0432\u043e\u0441\u0442\u0438", 
     "leaf": true, 
     "result": [] 
    }, { 
     "text": "\u0410\u043a\u0446\u0438\u0438", 
     "leaf": true, 
     "result": [] 
    }, { 
     "text": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438", 
     "leaf": true, 
     "result": [] 
    }, { 
     "id": "lang", 
     "text": "\u042f\u0437\u044b\u043a", 
     "leaf": false, 
     "result": [{ 
      "text": "\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b", 
      "leaf": true, 
      "result": [] 
     }] 
    }] 
} 

Ainsi, l'arbre chargera toutes les données au TreePanel .

0

Vous avez besoin des nœuds enfants à envoyer à partir du serveur dans le tableau des enfants récursive. Vous n'avez pas besoin d'attributs feuille et enfant sur le modèle car le modèle sera automatiquement encapsulé avec la classe NodeInterface qui aura ces attributs et plus (voir API pour la liste complète des attributs)

Questions connexes