2017-11-18 10 views
0

私はoModel.getPendingChanges()から3保留中の変更を取得し、oModelは、私はちょうどASETを提出したいsap.ui.model.odata.v2.ODataModelui5で保留中の変更を削除するにはどうすればよいですか?

{ 
    { 
     ASet('id1') : {id: 1} 
    }, 
    { 
     BSet('id1') : {id: 1} 
    }, 
    { 
     CSet('id1') : {id: 1} 
    } 
} 

です。 BとCの変更はComboBox selectからのものです。私はお互いに関連している3つのコンボボックスを持っています。私はそれを解決するためにバインディングを使用しました。

   <ComboBox 
        id="theSecondSelect" 
        selectionChange="onChange" 
        enabled="false" 
        showSecondaryValues="true" 
        value="{ 
         path: 'propertySetId', 
         type: '.Utils.mandatoryValueType'}"> 
       </ComboBox> 

<items>は、コントローラで動的にバインドされています。

私も、私は保留中の変更は、すでに削除されているが、3つの要求がまだ送信されていることがわかります

  for(var sBindingPath in oChanges) { 
       if(sBindingPath.indexOf("ASet") === -1) { 
        delete oModel.mChangedEntities[sBindingPath]; 

       } 
      } 
      console.log(oModel.getPendingChanges()); 

を試してみました。

提案がありますか?

+1

v2.oDataModelには、「resetChanges」関数があります。あなたはそれを試しましたか? –

答えて

1

resetChangesのAPIの説明hereを参照してください。

このメソッドは、パラメータとして文字列の配列をとります。各文字列は、リセットされるべきエンティティのパスです。

サンプルコール:

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

これは、2つの与えられたエンティティの変更をリセットします。したがって、ASet('id1')エンティティへの変更のみを提出する必要があります。

関連する問題