0
をモデル化するためにHTTPオブジェクトの地図、ここで私が働いているものです:私は私のモデルに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()関数全体に送信し、その値をモデルの単一のインスタンスにマップし、その単一のモデルを返す方法を探しています。
ありがとうございます!
あなたが少しをしてください説明する気にしませんか?これはうまくいかないと思っています。なぜなら、モデルの代わりにMyObjControllerを使用するような特定のことをした理由を知りたいからです。それを修正するようにしてみることができます – jlee
'.then'を使うべきではありません。あなたは 'all'メソッドの戻り値の型に従って約束を返しています。インターフェイスを使用する代わりに、クラスをモデルとして機能させる必要はありません。 – Aravind