3

new を使用して API 呼び出しの応答をモデルに入力しようとしていますHttpClientModule。ただし、モデルの属性は「json 型」ではなく、複合型です。

json オブジェクトだけでなく、実際のオブジェクトと一致するを返す方法getByIdgetAll方法について何か考えはありますか?ReferenceServiceObservableReference

これが私がやりたいことの例です。

ありがとう !

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());
            });
    }
}

`

4

0 に答える 0