new を使用して API 呼び出しの応答をモデルに入力しようとしていますHttpClientModule
。ただし、モデルの属性は「json 型」ではなく、複合型です。
json オブジェクトだけでなく、実際のオブジェクトと一致するを返す方法getById
とgetAll
方法について何か考えはありますか?ReferenceService
Observable
Reference
これが私がやりたいことの例です。
ありがとう !
class Reference {
id: number;
title : string;
type : Type;
date : Date;
tags : Array<Tag>;
constructor(id : number = null, title : string = '', type : Type = new Type(), date : Date = new Date(), tags : Array<Tag> = []) {}
display() {
console.log(this.title);
this.type.display();
}
}
class Type {
id: number;
name : string;
constructor(id : number = null, name : string = '') {}
display() { console.log(this.name); }
}
class Tag {
id: number;
name : string;
constructor(id : number = null, name : string = '') {}
}
@Injectable()
class ReferenceService {
constructor(private http : HttpClient) {}
getById(id: number) {
return this.http.get<Reference>('/api/reference/'+id);
}
getAll() {
return this.http.get<Array<Reference>>('/api/references');
}
}
@Component({
providers: [ReferenceService]
})
class ReferenceComponent implements OnInit {
model: Reference;
constructor(private referenceService : ReferenceService) {}
ngOnInit() {
this.referenceService
.getById(42) // hard coded for testing
.subscribe( (data : Reference) => {
this.model = data;
console.log(this.model.display());
});
}
}
`