在文档中,我发现了这样的实例化商店:

var store = Ext.create('Ext.data.Store',{
autoLoad:是的,
型号:“用户”,
代理: {
类型:“ajax”,
url:'users.json',
读者:{
类型:“json”,
root:“用户”
}
}
});

代理具有一个url配置。我对读者特别感兴趣。读取器指定数据交换格式(json)和根目录('users')。现在,换句话说,如果将商店设置为:autoLoad = true,则EXT JS将与指定的url建立Ajax连接,以便进行read。现在,我将如何为上面的同一商店配置writer?有人也告诉我:如果我配置作家,它将使用代理中指定的相同网址吗?在我上面显示的代码的上下文中,我仍然对作者和读者感到困惑,您将帮助我使用以上示例来显示读者和作者配置。谢谢。

最佳答案

这是我的应用程序中具有读取器,编写器和api的商店的示例:

Ext.define('MyApp.store.Tasks', {
    extend: 'Ext.data.Store',
    model: 'MyApp.model.Task',
    sorters : [{
       property: 'idx',
       direction: 'ASC'
    }],
    autoSync:true,
    proxy:{
        type: 'ajax',
        reader: {
            type: 'json',
            root: 'data'
        },
        writer: {
            type: 'json',
            writeAllFields : false,  //just send changed fields
            allowSingle :false      //always wrap in an array
           // nameProperty: 'mapping'
       },
        api: {
               // read:
                create: 'task/bulkCreate.json',
                update: 'task/bulkUpdate.json'
               // destroy:
        }
    },
    listeners : {
        write: function(store, operation, opts){
            console.log('wrote!');
            //workaround to sync up store records with just completed operation
            Ext.each(operation.records, function(record){
                if (record.dirty) {
                    record.commit();
                }
            });
        },
        update:function(){
            console.log('tasks store updated');
        }
    }
});

09-18 14:48