我尝试让Ext.Data.Store正常工作......
使用普通代理可以很好地使用它:
var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'});
user.save({
callback: function(){
arguments[0].destroy();
}
});
请拨打以下网址:
POST“http:// localhost:3000 / users?_dc = 1332885308330” 删除“http:// localhost:3000 / users / 1995?_dc = 1332885308524”
我的服务器总是将1995作为id返回。
当我在商店尝试同样的事情时:
var user = store.add({name: 'Ed Spencer', email: 'ed@sencha.com'});
store.sync();
store.destroy(store.getAt(0));
store.sync();
它称之为网址:
POST“http:// localhost:3000 / users?_dc = 1332885308330” 删除“http:// localhost:3000 / users / User-ext-record-2?_dc = 1332885308326& id = User-ext-record-2”
为什么使用普通代理,内部ID是正确的而不是存储...
这是我的模型,代理和商店配置:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email'],
proxy: {
type: 'rest',
url : '/users',
reader: {
type: 'json',
root: 'data',
id: 'id'
},
writer: {
type: 'json',
writeAllFields: true,
root: 'data',
messageProperty: 'message'
}
},
});
var store = Ext.create('Ext.data.Store', {
model: 'User',
});
修改:
适用于removeAt()
setTimeout(function(){
store.removeAt(0);
store.sync();
}, 2000);
答案 0 :(得分:1)
store.destroy(store.getAt(0));
这种方法是否存在我在文档中找不到它,可能是你需要使用
store.removeAt(0);