在Sencha Touch 1.1中使用AJAX代理从存储中删除记录
我不知道如何检测AJAX代理生成的HTTP请求是插入/更新还是删除操作 以下是我的数据(simpsons.json): 这是我的Sencha Touch 1.1代码:在Sencha Touch 1.1中使用AJAX代理从存储中删除记录,ajax,sencha-touch,Ajax,Sencha Touch,我不知道如何检测AJAX代理生成的HTTP请求是插入/更新还是删除操作 以下是我的数据(simpsons.json): 这是我的Sencha Touch 1.1代码: Character = Ext.regModel('Character', { fields: [ {name: 'id', type: 'int'}, {name: 'firstName', type: 'string'} ] }); SimpsonsStore = new Ex
Character = Ext.regModel('Character', {
fields: [
{name: 'id', type: 'int'},
{name: 'firstName', type: 'string'}
]
});
SimpsonsStore = new Ext.data.Store({
model: 'Character',
proxy: {
type: 'rest',
url: 'simpsons.json'
},
autoLoad: true
});
SimpsonsStore.on('load', function(store, records, success) {
// add record
store.add({id: 5, firstName: 'Maggie'});
// update record
var margeRecord = store.findRecord('firstName', 'Marge');
margeRecord.set('firstName', 'Marjorie');
// delete record
var homerRecord = store.findRecord('firstName', 'Homer');
store.remove(homerRecord);
// sync store
store.sync();
});
运行此代码将生成以下HTTP请求:
POST /simpsons.json/5?_dc=1321377134028 HTTP/1.1
{"records":[{"id":5,"firstName":"Maggie"}]}
与此类似,每个操作都有自己的HTTP请求方法(动词)
当我将代理类型从“rest”更改为“ajax”时,生成的HTTP请求如下所示:
POST /simpsons.json?_dc=1321376787918 HTTP/1.1
{"records":[{"id":5,"firstName":"Maggie"}]}
正如你所看到的,这些看起来非常相似。这不是插入或更新操作的问题。但是后端如何检测到最后一个HTTP请求既不是插入也不是更新,而是删除操作
我在Sencha Touch 2.0中找到了Ext JS 4中存在的“api”配置选项,但在Sencha Touch 1.1中没有找到为AJAX代理的特定操作定义不同URL或参数的方法
谢谢你的帮助
谢谢
Uwe转到此处向下滚动到Url生成,并阅读有关
Ext.data.Operation
对象及其使用方法的信息。AjaxProxy的actionMethods属性默认设置为
{create: "POST", read: "GET", update: "POST", destroy: "POST"}
您可以简单地覆盖它:
store.getProxy().actionMethods = {
create: "POST",
read: "GET",
update: "PUT",
destroy: "DELETE"
};
谢谢我已经读过了。所有这些示例都演示了如何将此类自定义操作作为参数传递给代理的read方法。但我在一家商店工作,调用它的同步方法。我看不出这些示例如何帮助我的系统根据它们的操作来区分生成的HTTP请求。请告知。
POST /simpsons.json?_dc=1321376787918 HTTP/1.1
{"records":[{"id":5,"firstName":"Maggie"}]}
POST /simpsons.json?_dc=1321376792207 HTTP/1.1
{"records":[{"id":2,"firstName":"Marjorie"}]}
POST /simpsons.json?_dc=1321376798158 HTTP/1.1
{"records":[{"id":1,"firstName":"Homer"}]}
{create: "POST", read: "GET", update: "POST", destroy: "POST"}
store.getProxy().actionMethods = {
create: "POST",
read: "GET",
update: "PUT",
destroy: "DELETE"
};