Javascript 将http对象映射到模型
我在将http对象映射到我的模型时遇到问题,下面是我正在处理的问题: MyObjController.tsJavascript 将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,
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();
});
}