提交更改错误后sapui5 odata恢复模型

问题描述 投票:0回答:1

我已经显示了每个项目的项目列表(聚合绑定)和编辑按钮,以编辑项目的值。编辑按钮打开一个弹出窗口,我可以在其中更改值。

我正在使用双向绑定,我在编辑弹出窗口中的值并按下弹出“确定”按钮后调用submitChanges()。

submitChanges有两个回调 - 成功和错误。现在,当后端发生错误时(例如,另一个用户正在编辑该项目),我可以处理并显示错误消息。并且后端不会更改数据。然而,尽管有错误,模型本身(在前端)也会发生变化。

这是必须由OData服务本身处理的东西吗?或者我应该在前端做点什么?调用resetChanges()没有用 - 在submitChanges之后没有恢复的更改。

任何示例或最佳实践?

odata sapui5 sap-web-ide web-ide
1个回答
1
投票

如果submitChanges不成功并且您进入错误处理程序,则数据将保留在前端的“已编辑”表单中(因此您可以尝试再次提交)。

由您的前端逻辑决定如何做:

  • 默认是继续编辑并尝试稍后提交
  • 一个常见的替代方案是resetChanges(在非成功的submitChanges之后有更改)和之后的oModel.refresh从后端重新获得新的副本,因此用户可以再次开始编辑

而且 - 当然您可以为用户提供选择 - 重置所有内容并从后端获取新的副本 - 或者每行中的重置按钮可以单独重置单个项目。

© www.soinside.com 2019 - 2024. All rights reserved.