2012-02-15 6 views
0

En utilisant sencha touch 2, j'essaie de rendre une liste imbriquée avec un proxy json. Le JSON ressembleSencha Touch JSONPReader

[ 
    { 
    "start": "0" 
    }, 
    { 
    "format": "json" 
    }, 
    ....... 
    { 
    "GetFolderListing": [ 
     { 
      "folder": { 
       "total": 0, 
       "id": "Calendar", 
       "name": "Calendar", 
       "unread": 0, 
      } 
     }, 
     { 
      "folder": { 
       "total": 0, 
       "id": "Contacts", 
       "name": "Contacts", 
       "unread": 0, 
      } 
     }, 
    ....... 

Je veux utiliser GetFolderListing.folder.name comme displayField Mon magasin ressemble

Ext.define('foo.store.FolderListing', { 
extend: 'Ext.data.TreeStore', 
require: ['foo.model.FolderListing'], 
config: { 
    model: 'foo.model.FolderListing', 
    recursive: true, 
    proxy: { 
    type: 'jsonp', 
    url: 'http://localhost/?xx=yy&format=json', 
    callbackKey: "jsoncallback", 
    reader: { 
     type: 'json', 
     rootProperty: 'GetFolderListing', 
     record: 'folder' 
    } 
} 
} 
}); 

En ce moment, tout ce que je reçois une erreur Uncaught TypeError: Impossible de lire propriété 'id' de undefined

Est-ce que quelqu'un pourrait fournir un aperçu sur la façon de résoudre ce problème ou de le déboguer mieux ou comment faire une analyse personnalisée et de renvoyer des articles à un magasin?

Merci

======== Mise à jour - pour que le rootProperty de travailler dans le lecteur, le JSON devait être un JsonObject plutôt qu'un tableau JSON par exemple

{ 
"GetFolderListing": [ 
    { 
     "folder": { 
      "total": 0, 
      "id": "Contacts", 
      "name": "Contacts", 
      "unread": 0, 
      "leaf": "true" 
     } 
    }, 
    { 
     "folder": { 
      "total": 0, 
      "id": "Conversation Action Settings", 
      "name": "Conversation Action Settings", 
      "unread": 0, 
      "leaf": "true" 
     } 
    }, 
    ....... 

Répondre

0

Votre JSON ressemble à un tableau. Le message d'erreur signifie que le code tente d'accéder à une propriété d'une variable indéfinie ou d'une propriété. Ma première supposition serait que le lecteur n'est pas correctement configuré pour ce format JSON de type tableau.

+0

Oui, vous avez raison, le JSON devait être adressable par carte pour le premier groupe de frères et sœurs afin que la propriété rootProperty fonctionne. Je vous remercie ! – pjaol