How do I retrieve values from dojo.data.ItemFileReadStore

早过忘川 提交于 2019-12-09 12:12:59

问题


First, I read this short help thread here: CLICK

It uses a JSON file built together with PHP which looks something like THIS:

{ 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'}] },

So let's say I now want to "echo" all the cities in this list ... that's no problem for me! :-) But I'm totally confused how to access the population for example! How can I make a function which echos: "Mexico City: population:'19 million' timezone:'-6 UTC'" for example?


回答1:


You can do it like so:

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' ) );
               }
});

Note, that your data should have an items key that holds an array of your actual data.

Admittedly, dojo data stores are a bit difficult to wrap your head around at first but it makes sense once you remember that the data could be loaded lazily and asychronously. That's why all requests for items go through fetch and retrieving values goes through getValue.

Dojocampus has a nice write-up about ItemFileReadStore.



来源:https://stackoverflow.com/questions/1367386/how-do-i-retrieve-values-from-dojo-data-itemfilereadstore

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!