我想知道如何在ST2中使用代理的api属性
现在,我在我的代理配置中有这个:
api: {
create : App.urls.create_object,
read : App.urls.load_object,
update : App.urls.update_object,
destroy : App.urls.destroy_object
}
但是,我不知道如何使用它。 例如,当我想创建一个新对象时,我用这些参数创建了一个Ext.Ajax.request:
url: App.urls.create_object,
params: {
'object': object
},
但是现在,我怎么能用api属性做同样的事情呢?
你可以帮忙吗?答案 0 :(得分:1)
假设您有这样的模型:
Ext.define('User', {
fields: ['name', 'email'],
proxy: {
type: 'ajax',
api: {
create: 'my_create_url',
read: 'my_read_url',
update: 'my_update_url',
destroy: 'my_destroy_url'
}
}
});
创建强>
var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'});
user.save(); // will POST to the create url
<强>更新强>
var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'});
user.save({
success: function(user) {
user.set('name', 'Robert Dougan');
user.save(); // will PUT update URL
}
});
<强>读强>
使用商店:
var store = Ext.create('Ext.data.Store', {
model: 'User'
});
store.load(); // will GET to read URL
使用模型:
// will GET the read URL with the specified ID.
User.load(12, {
success: function(user) {
console.log(user);
}
});
<强>破坏强>
var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'});
user.save({
success: function(user) {
user.destroy(); // will DELETE destroy URL
}
});
在Sencha文档的Rest代理中有更多相关信息:http://docs.sencha.com/touch/2-0/#!/api/Ext.data.proxy.Rest
同步强>
您还可以使用商店同步方法批量创建/更新/销毁商店中的所有记录。
var store = Ext.create('Ext.data.Store', {
model: 'User'
});
store.add({ name: 'Robert Dougan', email: 'rob@sencha.com' });
store.sync(); // will batch update all the needed records