重新排列的 OneToOne 连接

Restangular OneToOne connection

在我的客户申请的#/dossiers/{id}/offertes
我需要从休息中获取我的档案 api/dossiers/{id}。
然后在那个档案上我需要得到相应的offerte api/dossiers/{id}/offerte
从那里我会得到我的 offerteRecords api/offertes/{id2}/records

我将包含我的 REST 数据 here

第一个卷宗没问题。

restService.getOne("dossiers",this.parentId).then(
    (dossier: any): void => {
        this.dossier = dossier;
}

但是从那以后我想得到我的第二份档案。 我可以这样做:

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

这给了我

Object {id: 1, createdBy: "system", createdOn: "2016-05-17T14:24:43.384+0000", updatedBy: null, updatedOn: null…}

但我想做类似

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

但是这个returns

[route: "offerte", reqParams: null, restangularized: true, fromServer: true, parentResource: Object…]

我应该如何调用此对象而不是 getList()?

我找到了解决问题的部分方法。
在我的 restangular 配置中,当我得到项目时,这是预定义的。

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 要求的自定义包装器来解决这个问题,但是 easiest/fastest 解决方案是使用 customGET();

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

这个 returns 正确的提议对象。