将AJAX响应数据添加到商店

时间:2012-10-04 06:45:32

标签: sencha-touch sencha-touch-2 sencha-architect

如果我的数据来自后端AJAX调用,如何将数据添加到json存储。

我的商店如下。

Ext.define('MyApp.store.GeographyMasterStore', {    extend: 'Ext.data.Store',


requires: [
    'MyApp.model.GeographyMasterModel'
],


config: {
    model: 'MyApp.model.GeographyMasterModel',
    storeId: 'geographyMasterStore',
    proxy: {
        type: 'ajax',
        reader: {
            type: 'json'
        }
    }
}
});

我的模型如下:

Ext.define('MyApp.model.GeographyMasterModel', {
extend: 'Ext.data.Model',


config: {
    fields: [
        {
            name: 'Code'
        },
        {
            name: 'Description'
        },
        {
            name: 'Level_Code',
            mapping: 'Level Code'
        },
        {
            name: 'Name'
        }
    ]
}
});

如果我添加这样的数据

var geographyMasterStore = Ext.getStore('geographyMasterStore');
geographyMasterStore.add(<data from backend AJAX call>);

它没有显示映射的字段,即Level_Code

2 个答案:

答案 0 :(得分:0)

通常我在向商店添加记录时如下:

Ext.create('App.model.MyModel', JSON.parse(response.responseText);

响应是来自Ext.Ajax.request

的回复

希望这有帮助

答案 1 :(得分:0)

您需要创建一个模型:

var record = Ext.create('model.GeographyMasterModel', Ext.JSON.decode(response.responseText));

保存模型:

record.save()

重新加载商店:

geographyMasterStore.load()