2017-11-18 265 views
0

我從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'功能。你嘗試過嗎? –

回答

1

查看resetChanges方法here的API說明。

該方法以字符串數組作爲其參數。每個字符串都是應該重置的實體的路徑。

樣品電話:

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

這將重置給定的兩個實體的變化。因此只應提交對您的ASet('id1')實體的更改。

相關問題