如何从json文件加载数据

时间:2012-02-07 13:30:45

标签: json extjs load var

我使用extjs并使用存储加载程序加载json文件。

我想加载一个json文件。它将包含“totalRecords”,我想把它放在var中。例如var Records。这样我就可以在我的应用程序的某些位置显示它并将其用于警报。

感谢你的帮助,我知道有这个:

total = Ext.create('Ext.data.Store', {
model: 'step1',
proxy: {
        type: 'ajax',
        url: 'testevents.json',
        reader: {
            type: 'json',
            root: 'slaevents'
        }
},
listeners: {
    load: function() {
        records = total.getRange()
        test = records[0].get('event')
        alert('1 =' +test)
    }
},
autoLoad:true
});
alert('2 =' +test)

这将显示警告“1 =其他”。那是正确的。并且“2 =未分解”。那是错的。我如何在这家店外使用测试?

谢谢

1 个答案:

答案 0 :(得分:2)

意识到您的商店没有立即加载,因此当您在js中立即将其分配给变量时,它没有任何内容。您需要监听要加载的商店,然后分配它,或者在回调中分配它。例如,这很好用:

// get the countries
var countries = Ext.create('Ext.data.Store', {
    fields: ['id','name'],
    proxy: {
        type: 'ajax', 
        url: '../getCountries',
        reader: 'json'
    },
    listeners: {
        load: function() {
            records = countries.getRange()
            alert(records[0].get('name'))
        }
    }
});

此警告“阿根廷”。

records成为Ext.data.Model个对象的数组,每个对象都具有Ext.data.Model所具有的所有方法。这包含在API中的here