我已经显示了一个项列表(聚合绑定),并按每个项编辑按钮来编辑项的值。“编辑”按钮打开一个弹出窗口,我可以在其中更改值。
我使用双向绑定,在编辑弹出窗口中的值并按弹出按钮'OK‘之后调用submitChanges()。
submitChanges有两个回调-成功和错误。现在,当来自后端的错误(例如,另一个用户正在编辑项目)时,我可以处理并显示错误消息。并且后端的数据不会改变。然而,尽管出现了错误,模型本身(在前端)还是会发生变化。
这是OData服务本身必须处理的东西吗?还是我应该在前面做点什么?调用resetChanges()是没有帮助的--在submitChanges之后,不需要进行任何更改。
有什么例子或最佳做法吗?
发布于 2019-02-24 15:29:08
如果submitChanges不成功,并且您进入了错误处理程序,数据将停留在前端的“编辑”表单中(因此您可以尝试再次提交)。
这取决于您的前端逻辑来决定该做什么:
resetChanges (有!)在未成功的submitChanges之后进行更改,然后更改为oModel.refresh,以便从后端重新获得一个新的副本,这样用户就可以重新开始编辑了。当然,您也可以为用户提供选择--重置所有内容并从后端获得一个新的副本--或者在每一行中设置一个重置按钮,以便能够单独重置单个项目。
https://stackoverflow.com/questions/54851864
复制相似问题