如何删除ui5中的挂起更改?
问题描述:
我从oModel.getPendingChanges()
3度未决的改变,oModel是sap.ui.model.odata.v2.ODataModel如何删除ui5中的挂起更改?
{
{
ASet('id1') : {id: 1}
},
{
BSet('id1') : {id: 1}
},
{
CSet('id1') : {id: 1}
}
}
我只想提交ASET。 B和C更改来自ComboBox选择。我有三个相互关联的组合框。我用绑定来解决这个问题。
<ComboBox
id="theSecondSelect"
selectionChange="onChange"
enabled="false"
showSecondaryValues="true"
value="{
path: 'propertySetId',
type: '.Utils.mandatoryValueType'}">
</ComboBox>
<items>
在控制器中动态绑定。
我甚至试过
for(var sBindingPath in oChanges) {
if(sBindingPath.indexOf("ASet") === -1) {
delete oModel.mChangedEntities[sBindingPath];
}
}
console.log(oModel.getPendingChanges());
我可以看到挂起的更改已经被删除,但三个请求仍然被发送。
有什么建议吗?
答
查看resetChanges
方法here的API说明。
该方法以字符串数组作为其参数。每个字符串都是应该重置的实体的路径。
样品电话:
oModel.resetChanges(["/BSet('id1')", "/CSet('id1')"]);
这将重置给定的两个实体的变化。因此只应提交对您的ASet('id1')
实体的更改。
v2.oDataModel具有'resetChanges'功能。你尝试过吗? –