如何删除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()); 

我可以看到挂起的更改已经被删除,但三个请求仍然被发送。

有什么建议吗?

+1

v2.oDataModel具有'resetChanges'功能。你尝试过吗? –

查看resetChanges方法here的API说明。

该方法以字符串数组作为其参数。每个字符串都是应该重置的实体的路径。

样品电话:

oModel.resetChanges(["/BSet('id1')", "/CSet('id1')"]); 

这将重置给定的两个实体的变化。因此只应提交对您的ASet('id1')实体的更改。