点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在使用v2 odata模型推迟删除请求:
this._oModel.setDeferredGroups([" TechObjDelete"]); this._oModel.remove("/img/TechnicalObjectSet(EquipmentNo ='" + oItem.EquipmentNo +"',Job ='" + oItem.Job +"')",{ groupId:" TechObjDelete", changeSetId:oItem.EquipmentNo, 成功:function(oData){ }, 错误:function(oError){ } });
并希望在用户单击"保存"按钮时进行删除。 所以在保存时我打电话:
this._oModel.submitChanges();
一切正常。 问题是当用户没有单击"保存"按钮而是移至另一个屏幕时。 然后,我想重置模型中的延迟更改。
我可以通过初始化以下属性来做到这一点,因为它存储了延迟的请求:
this._oModel.mDeferredRequests = {};
但是,这正在访问模型的私有属性。 有更好的方法重置它吗?
拉德克,你好
您可以使用" resetChanges"功能。 就您而言,这就像
这将重置模型中所有待处理的更改。 无论如何,..如果您要检查挂起的请求是否在更改组中,您想要重置,则可以采用这种方式。
希望这会有所帮助。 有关更多信息,请参见 resetChanges 。 :)
此致
Sascha
我遇到了确切的问题,正在寻找解决方案。
您好Radek,
我有相同的查询,UI5的同事帮助解决了它。 因此,有两种方法可以删除/删除延迟的呼叫。
1。 通过调用模型的destroy()方法。 销毁模型后,所有待处理的请求都将中止。
2。 通过调用在每个操作的返回对象中可用的abort()方法,例如创建,读取,删除,更新, callFunction 和 submitChanges 。
如果您检查上述每种方法的文档,就会发现它们返回一个对象,并且该对象的说明如下:"具有
abort
函数的对象可以中止当前请求 。"注意:Sascha提到的方法只有在使用#setProperty 方法。 在 resetChanges() API。
希望这会有所帮助!
最好的问候
Himanshu
一周热门 更多>