如何确保从服务器加载并随后在UI中更改模型(即ExtJS)并发送回服务器的模型被正确保存?
我们在应用程序中看到的问题是,在不正确加载模型的情况下,可以保存模型。这可能会导致保存不完整的模型。
例如,在服务器上,模型具有以下属性:
color: blue
size: 10
weight: 20用户加载模型,在加载过程中用户进行更改。
color: red然后拯救。结果,模型在服务器上失去了它的重量和大小属性。请注意,这是对我们的场景的彻底的过度简化。模型要复杂得多,数据量要大得多。
我能想到的策略:
有人能给我指明正确的方向吗?是否可以使用Ext.data.Record.getChanges / isModified实现第二种方法?ExtJS是如何处理删除的?
发布于 2012-03-21 11:35:04
当您需要保存一个从未保存过的模型时,您可以这样做:
model.save();此方法自动调用Ext.data.proxy.Proxy.create()方法。
如果您需要用一些新的数据更新模型,甚至替换现有的数据,您可以这样做:
model.set('property', 'value');另一方面,这个方法会自动调用Ext.data.proxy.Proxy.update()方法。
然后,您可以使用引用动作状态的模型类常量:
Ext.data.Model.EDITExt.data.Model.REJECTExt.data.Model.COMMIT@charris提供了一个很好的例子,作为对官方文档的评论:
var myStore = Ext.create('Ext.data.Store', {
model: 'MyApp.model.MyModel',
listeners: {
update: function(store, model, operation, eventOptions) {
if( operation == Ext.data.Model.EDIT ) {
// Model was edited but not saved...
}
else if( operation == Ext.data.Model.COMMIT ) {
// Model was saved...
}
}
}
});也许这会对你有帮助。
https://stackoverflow.com/questions/9803422
复制相似问题