3

我正在尝试使用新的 API 调用的响应来填充模型HttpClientModule。但是,模型的属性不是“json 类型”而是复杂类型。

您是否知道我getByIdgetAll方法和ReferenceService返回的方法如何Observable匹配真实Reference对象而不仅仅是 json 对象?

这是我想做的一个例子。

谢谢 !

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