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