【发布时间】:2017-05-04 20:11:41
【问题描述】:
我在将 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);
});
}
MyObjModel.ts
export class MyObjModel {
constructor () { }
id:string;
name:string = '';
organizationId:string = '';
static create (apiResponse) {
let model = new MyObjModel();
model.id = apiResponse.Id;
model.name = apiResponse.Name;
model.organizationId = apiResponse.OrganizationId;
return model;
}
}
这种方法不起作用,因为 _.map 从我的 response.data 发送每个值并为每个属性创建 MyObjModel 的新实例,然后创建模型数组。我正在寻找一种将 response.data 作为一个整体发送到我的 create() 函数并将值映射到模型的单个实例并返回该单个模型的方法。
提前致谢!
【问题讨论】:
标签: javascript angular typescript lodash