2016-05-31 9 views
2

내 클라이언트 신청서의 #/dossiers/{id}/offertes에서
나머지 api/dossiers/{id}에서 내 서류를 받아야합니다.
다음 해당 서류에 내가 해당 offerte API를/서류/{ID} 내 offerteRecords API를/offertes/{ID2}을 얻을 것이다에서/offerte
/기록을 얻을 필요가Restrict OneToOne 연결

내 REST를 포함 줘야 데이터 here

첫 번째 서류는 문제가되지 않습니다.

하지만 두 번째 서류를 받고 싶습니다. 나는 이런 식으로 일을 할 수 있어요 :

restService.getOneUrl("offertes", this.dossier._links.offerte.href).then(
    (offerte: any): void => { 
     this.parent = offerte; 
     console.log("offerte is ", this.parent); 
    } 
); 

을 그리고 이것은 나에게

오브젝트 {ID를 제공합니다 : 1 createdBy : "시스템", createdOn : "2016-05-17T14 : 24 : + 0000 43.384 ", updatedBy : 널 (null), updatedOn : 널 (null) ...}

하지만

this.dossier.getList("offerte").then(
      (offerte: any):void =>{ 
       console.log("offerte is ", offerte); 
      } 
     ); 
처럼 뭔가를하고 싶어

그러나이

반환 [경로 : "offerte", reqParams을 : 사실, parentResource : fromServer 사실 : restangularized, 널 객체 ...]

어떻게 대신 getList의이 객체에 호출해야()?

답변

0

문제점에 대한 부분적인 해결책을 발견했습니다.
내 구형 구성에는 프로젝트가있을 때 사전 정의되어 있습니다.

restangularProvider.addResponseInterceptor(function(data: any, operation: string, what: string, 
                url: string, response: any, 
                deferred: any): any { 
    let result: any = data; 

    if (operation === 'getList') { 
     if (data._embedded !== undefined) { 
      result = data._embedded[what]; 
     } else { 
      result = []; 
     } 
} 

    return result; 
}); 

이렇게하면받은 데이터에 getOneUrl과 비교하여 포맷이 불안정 해집니다.
이것은 restangular가 항상 배열을 getList에 입력하기를 원하기 때문에 수행되었습니다.
필자는 getList의 요구 사항을 만족시키는 커스텀 래퍼를 작성하여이 문제를 해결할 수 있지만, 가장 쉬운 방법은 customGET()을 사용하는 것입니다.

this.dossier.customGET("offerte").then(
     (offerte: any):void =>{ 
      console.log("offerte is ", offerte); 
     } 
    ); 

올바른 쿠폰 개체를 반환합니다.