提交更改错误后 sapui5 odata 还原模型

sapui5 odata revert model after submit changes error

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

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

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

这是必须由 OData 服务本身处理的事情吗? 或者我应该在前端做些什么?调用 resetChanges() 没有帮助 - 在 submitChanges 之后没有要还原的更改。

有什么例子或最佳做法吗?

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

由您的前端逻辑来决定要做什么:

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

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