我正在与合作伙伴一起构建Sencha Touch 2数据库应用。他在后端为我构建了大量的方法,语法如下:
每个都希望与它一起发送POST。
我正在努力解决的问题是代理应该是什么样的 - 例如,有没有办法指定一个show proxy来映射/更新/添加和/删除它们相关的U / C / D操作?代理中只有一个url,那就是get动作(在这种情况下是getByUser)
我假设我想以某种方式将其他操作放入代理中 - 或者我只需要为每个操作添加一堆不同的代理(这似乎有点多余......)
Sencha文档暗示CRUD操作是内置于代理服务器,但我不知道他们的网址在何处或如何定义......
Ext.define('SMToolkit.store.Shows', {
extend: 'Ext.data.Store',
config: {
model: 'SMToolkit.model.Show',
autoLoad: true,
sorters: 'name',
grouper: {
groupFn: function(record) {
return record.get('type');
}
},
proxy: {
type: 'ajax',
url : 'index.php?r=show/getByUser&username=FOO'
}
}
});
使用如下所示的模型:
Ext.define('SMToolkit.model.Show', {
extend: 'Ext.data.Model',
config: {
fields: [
'id',
'name',
'opening',
'closing',
'rehearsal',
'type',
'availability'
]
}
});
答案 0 :(得分:1)
如果每个操作都有特定的URL,ST2会为您提供API属性。您应该将代理更改为:
proxy: {
type: 'ajax',
api: {
create : 'index.php?r=show/add',
read : 'index.php?r=show/read',
update : 'index.php?r=show/update',
destroy: 'index.php?r=show/delete'
}
}
请注意我删除了url属性并添加了api属性。此外,要删除,您必须输入单词'destroy',因为在Javascript中,'delete'是保留字。