Javascript 将http对象映射到模型

Javascript 将http对象映射到模型,javascript,angular,typescript,lodash,Javascript,Angular,Typescript,Lodash,我在将http对象映射到我的模型时遇到问题,下面是我正在处理的问题: MyObjController.ts class MyObjController { constructor ( private myObj:myObjService, private $scope:angular.IScope, private modal, private notifier,

我在将http对象映射到我的模型时遇到问题,下面是我正在处理的问题:

MyObjController.ts

class MyObjController {
        constructor (
            private myObj:myObjService,
            private $scope:angular.IScope,
            private modal,
            private notifier,
            private $translate,
            private $state,
            public items:MyObjModel[],
            public loading
        ) {
            this.loading = this.myObj.all();

            this.loading.then((allItems) => {
                this.items = allItems;
            });
        }
}
MyObjService.ts

all () : angular.IPromise<MyObjModel[]> {
            let uri = `/myuri`;

            return this.api.get(uri).then((response:any) => {
                return _.map(response.data, MyObjModel.create);
            });
        }
这种方法不起作用,因为u.map正在从my response.data发送每个值,并为每个属性创建MyObjModel的新实例,然后创建一个模型数组。我正在寻找一种方法,将response.data作为一个整体发送到我的create函数,让它将值映射到模型的单个实例并返回该单个模型


提前谢谢

您应该使用以下代码

all () : angular.IPromise<MyObjModel[]> {
            let uri = `/myuri`;

            return this.api.get(uri).map(data=><MyObjController>data.json())).toPromise();
            });
        }

您可以使用接口而不是类和构造函数,这也是推荐的做法

请您解释一下好吗?这似乎不起作用,我想知道为什么你们做了某些事情,比如使用MyObjController而不是模型,这样我就可以试着理解它来修复它,你们不应该使用它。然后,当你们按照返回类型的all方法返回承诺时。您不需要使用类作为模型,而只需要使用接口。
all () : angular.IPromise<MyObjModel[]> {
            let uri = `/myuri`;

            return this.api.get(uri).map(data=><MyObjController>data.json())).toPromise();
            });
        }