【问题标题】:ExtJS Store Destroy event commitExtJS Store Destroy 事件提交
【发布时间】:2015-09-24 15:31:02
【问题描述】:

我想从商店中删除多个商品而无需刷新我的页面时遇到问题。我第一次删除一个事件时,一切都很好,你可以从这个 Fiddle sn-p 看到:

551   200   HTTP   localhost:52543   /api/Appointments/Destroy?_dc=1442940419083   140   no-cache; Expires: -1   application/json; charset=utf-8   chrome:157528         

数据:

{ "Id":1749644,"StartDate":"2015-09-22T01:00:00+02:00","EndDate":"2015-09-22T03:00:00+02:00","ResourceId":9,"PreviousResourceId":0,"Name":"","Cls":""}

但是,如果我想随后删除其他项目(不刷新页面),就好像事件存储不接受或不理解先前删除的记录已被处理:

[
 { Id":1749644,"StartDate":"2015-09-22T01:00:00+02:00","EndDate":"2015-09-22T03:00:00+02:00","ResourceId":9,"PreviousResourceId":0,"Name":"","Cls":""},
 {"Id":1749656,"StartDate":"2015-09-22T10:45:00+02:00","EndDate":"2015-09-23T16:00:00+02:00","ResourceId":20,"PreviousResourceId":0,"Name":"test","Cls":""}
]

如果您仔细观察,您会发现在第二次调用中也出现了相同的事件,而这不应该!除此之外,一切都很完美:在每 1 次销毁调用之后调用 Web API(因此在每次页面请求之后都是第一次)。在第一次调用之后,仍然调用了 Web API,但由于意外输入,现在绑定已损坏:它接收到一个集合,而它只需要一个项目。

这里是撕裂:

Ext.define('SchedulerApp.store.EventStore', {
extend: "Sch.data.EventStore",
autosync: true,
batch: false,
proxy: {
    type: 'ajax',
    api: {
        create: '/api/Appointments/Add',
        update: '/api/Appointments/Update',
        destroy: '/api/Appointments/Destroy'
    },
    reader: {
        type: 'json'
    },
    writer: {
        type: 'json',
        writeAllFields: true
    }
},
listeners: {
    load: {
        fn: function (store, records, successfull) {
        }
    },
    create: {
        fn: function (store, records, successfull) {

        }
    },
    add: {
        fn: function (store, records, successfull) {
            //store.sync();
        }
    },
    update: {
        fn: function (store, records, successfull) {
            var previousResource = records.previous.ResourceId;
            records.data.PreviousResourceId = previousResource;
            records.store.sync();
        }
    },
    destroy: {
        fn: function (store, records, successfull) {
        }
    },
    remove: {
        fn: function (store, records, successfull) {
            store.sync();
        }
    }       
}

});

我需要弄清楚如何“接受”更新/插入/删除的记录。这是一个相当独立的问题,因此此处发布的所有其他代码都将是无用的信息。

【问题讨论】:

    标签: javascript extjs asp.net-web-api scheduler


    【解决方案1】:

    原来我确实错过了商店的承诺功能。在回调的成功方法中,我添加了提交,问题就消失了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 2017-02-23
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多