【问题标题】:Adding a AJAX response data to a store将 AJAX 响应数据添加到商店
【发布时间】:2012-10-04 06:45:31
【问题描述】:

如果我的数据来自后端 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

【问题讨论】:

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


    【解决方案1】:

    通常我在向商店添加记录时是这样的:

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

    其中 response 是来自 Ext.Ajax.request 的响应

    希望对你有帮助

    【讨论】:

    • 如何将这样的数据添加到商店,我有一个预定义的商店和一个模型,在这里您正在创建一个新模型。
    【解决方案2】:

    你需要创建一个模型:

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

    保存模型:

    record.save()

    重新加载商店:

    geographyMasterStore.load()

    【讨论】:

    • 它不允许我使用上述代码创建模型。它给出了以下错误。
    • 我担心的是我没有得到映射到级别代码字段的字段级别代码。你可以在模型代码中看到。
    猜你喜欢
    • 1970-01-01
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2015-09-05
    相关资源
    最近更新 更多