2017-11-18 1 views
0

내가 oModel.getPendingChanges()에서 세 보류중인 변경을 얻을, oModel 난 그냥 설정 A를 제출하고자 sap.ui.model.odata.v2.ODataModelui5에서 보류중인 변경 사항을 삭제하는 방법은 무엇입니까?

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

입니다. B 및 C 변경은 ComboBox select에서 발생합니다. 서로 관련된 3 개의 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 메서드의 API 설명은 here을 참조하십시오.

이 메서드는 문자열 배열을 매개 변수로 사용합니다. 각 문자열은 재설정해야하는 항목의 경로입니다.

샘플 호출 :

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

이 두 주어진 실체의 변화를 재설정합니다. 따라서 ASet('id1') 엔티티에 대한 변경 사항 만 제출해야합니다.

관련 문제