我正在尝试通过store.add
后跟store.sync()
来插入新记录。但它不会调用服务器。但是,当我加载现有记录并进行更改并执行store.sync
时,它确实有效。我的商店如下所示:
Ext.define('app.store.MyStore', {
extend : 'Ext.data.Store',
model : 'app.model.MyModel',
storeId : 'MyStore',
autoLoad: true,
pageSize : 50,
proxy : {
type : 'rest',
actionMethods : {
create : 'POST',
read : 'GET',
update : 'PUT',
destroy : 'DELETE'
},
root : 'results',
url : 'my_url',
reader : {
type : 'json',
root : 'result',
totalProperty : 'totalCount',
messageProperty : 'message'
},
simpleSortMode : true,
}
});
我正在添加以下记录:
store.add (new app.model.MyModel (
{
'field1' : val1,
'field2' : val2,
'field3' : val3
}
);
答案 0 :(得分:1)
我在代理配置中看不到编写器。无论何时想要将数据发送到服务器,都应该在代理中配置writer。
Ext.define('app.store.MyStore', {
extend : 'Ext.data.Store',
model : 'app.model.MyModel',
storeId : 'MyStore',
autoLoad: true,
pageSize : 50,
proxy : {
type : 'rest',
actionMethods : {
create : 'POST',
read : 'GET',
update : 'PUT',
destroy : 'DELETE'
},
root : 'results',
url : 'my_url',
reader : {
type : 'json',
root : 'result',
totalProperty : 'totalCount',
messageProperty : 'message'
},
writer:{
/*configure writer as per your requirement*/
},
simpleSortMode : true,
}
});
答案 1 :(得分:-1)
Store.add方法将模型实例添加到Store,因此它接受Model实例或Model配置对象的数组。
如果要对服务器进行Ajax调用,则应使用store.load而不是store.add