我已经显示了一个项目列表(聚合绑定),并显示了每个项目的编辑按钮以编辑项目的值。 编辑按钮会打开一个弹出窗口,我可以在其中更改值。
我正在使用双向绑定,并且在编辑弹出窗口中的值并按弹出的“确定”按钮后调用了commitChanges()。
submitChanges具有两个回调-成功和错误。 现在,当后端出现错误时(例如,另一个用户正在编辑该项目),我可以处理并显示错误消息。并且数据不会在后端更改。 但是,尽管有错误,模型本身(前端)还是发生了更改。
这是OData服务本身必须处理的吗? 还是我应该在前端做点什么?调用resetChanges()并没有帮助-在commitChanges之后,没有要还原的更改。
是否有任何示例或最佳做法?
答案 0 :(得分:1)
如果submitChanges
不成功,并且您进入错误处理程序,则数据将保留在前端的“已编辑”格式中(因此您可以尝试再次提交)。
由您的前端逻辑决定做什么:
resetChanges
(在submitChanges
不成功之后进行ARE !!),然后在oModel.refresh
之后从后端获取新副本,因此用户可以再次开始编辑而且-当然,您可以向用户提供选择-重置所有内容并从后端获取新副本-或也许每行中都有一个重置按钮,以便能够分别重置单个项目。