2009-09-02 9 views
6

In primo luogo, ho letto questa breve discussione aiuto qui: CLICKCome faccio a recuperare i valori da dojo.data.ItemFileReadStore

Si utilizza un file JSON costruito insieme con PHP che sembra qualcosa di simile:

{ name:'Italy', type:'country' }, 
{ name:'North America', type:'continent', 
    children:[{_reference:'Mexico'}, {_reference:'Canada'}, {_reference:'United States of America'}] }, 
{ name:'Mexico', type:'country', population:'108 million', area:'1,972,550 sq km', 
    children:[{_reference:'Mexico City'}, {_reference:'Guadalajara'}] }, 
{ name:'Mexico City', type:'city', population:'19 million', timezone:'-6 UTC'}, 
{ name:'Guadalajara', type:'city', population:'4 million', timezone:'-6 UTC' }, 
{ name:'Canada', type:'country', population:'33 million', area:'9,984,670 sq km', 
    children:[{_reference:'Ottawa'}, {_reference:'Toronto'}] }, 

Quindi diciamo che ora voglio "echo" tutte le città in questa lista ... non è un problema per me! :-) Ma sono totalmente confuso su come accedere alla popolazione, ad esempio! Come posso creare una funzione che echos: "Città del Messico: popolazione: '19 milioni 'fuso orario:' - 6 UTC '" per esempio?

risposta

10

Si può fare in questo modo:

var data = { items: [{ name:'Mexico City', type:'city', population:'19 million', timezone:'-6 UTC'}]}; 
var store = new dojo.data.ItemFileReadStore({ data: data }); 

// or just omit query object if you want all 
store.fetch({ query: { name: 'Mexico City' }, 
       onItem: function(item) { 
        console.log(store.getValue(item, 'name')); 
        console.log('population: ', store.getValue(item, 'population')); 
        console.log('timezone: ', store.getValue(item, 'timezone')); 
       } 
}); 

nota, che i dati devono avere una chiave di elementi che contiene una serie di dati effettivi.

Ammettiamolo, gli archivi di dati dojo sono un po 'difficili da comprendere all'inizio, ma ha senso quando si ricorda che i dati potrebbero essere caricati pigramente e in modo asincrono. Ecco perché tutte le richieste di articoli passano attraverso fetch e il recupero dei valori passa per getValue.

Dojocampus ha una bella recensione su ItemFileReadStore.

Problemi correlati