Sencha Touch:REST存储和DELETE请求

时间:2014-03-16 13:20:22

标签: rest extjs sencha-touch http-delete

我是Sencha Touch的新手,我在删除记录方面遇到了问题。

这是我的模特:

Ext.define('MyApp.model.Customer', {
    extend: 'Ext.data.Model',
    ...
    config: {
        idProperty: 'key',
        fields: [
            {
                name: 'key',
                type: 'auto'
            },
            {
                name: 'name',
                type: 'string'
            }
            ...
        ]
    }
    ....
}

这是与删除客户按钮相关联的事件:

onDeleteCustomerBtnTap: function(button, e, eOpts) {
    var data = this.getCustomerDetail().getData();
    var store = Ext.getStore("CustomerStore");
    var record = store.getById(data.key);
    store.remove(record);
    store.sync();
}

修改

这是商店

proxy: {
        type: 'rest',
        url: 'http://example.com/customers',
        useDefaultXhrHeader: false,
        appendId: false,
        reader: {
            type: 'json',
            idProperty: 'key',
            rootProperty: 'data'
        },
        writer: {
            type: 'json'
        }
    }

问题是它何时尝试同步商店。请求网址为http://example.com/customers?_dc=1394840324234,而不是http://example.com/customers/10?_dc=1394840324234

我做错了什么?

2 个答案:

答案 0 :(得分:2)

我终于使用了Ext.data.Model的erase方法。这是我的最终版本:

var data = this.getCustomerDetail().getData();
var store = Ext.getStore("CustomerStore");
var record = store.getById(data.key);

record.erase({
    success: function() {
        // ...
    }
}

});

答案 1 :(得分:0)

您是将自己的代理定义为“休息”吗?而不是' ajax'?

proxy: {
    type: 'rest',
    url : '/users'
}