2009-09-02 39 views
6

Trước tiên, tôi đọc chủ đề giúp đỡ ngắn này ở đây: CLICKLàm thế nào để lấy giá trị từ dojo.data.ItemFileReadStore

Nó sử dụng một tệp JSON được xây dựng cùng với PHP mà trông giống như sau:

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

Vì vậy, hãy nói rằng bây giờ tôi muốn "echo" tất cả các thành phố trong danh sách này ... đó là không có vấn đề đối với tôi! :-) Nhưng tôi hoàn toàn nhầm lẫn về cách truy cập dân số chẳng hạn! Làm thế nào tôi có thể tạo một hàm lặp lại: "Thành phố Mexico: dân số: '19 triệu 'múi giờ:' - 6 UTC '" chẳng hạn?

Trả lời

10

Bạn có thể làm điều đó như vậy:

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

Lưu ý, rằng dữ liệu của bạn nên có một mã khóa sản phẩm chứa một loạt các dữ liệu thực tế của bạn. Phải thừa nhận rằng, lưu trữ dữ liệu dojo hơi khó khăn để quấn đầu bạn vào lúc đầu nhưng nó có ý nghĩa khi bạn nhớ rằng dữ liệu có thể được tải một cách lười biếng và không đồng bộ. Đó là lý do tại sao tất cả các yêu cầu cho các mục đi qua fetch và truy xuất các giá trị đi qua getValue.

Dojocampus có ghi tốt đẹp về ItemFileReadStore.

Các vấn đề liên quan