http响应对象中没有方法

kri*_*iss 6 angular-http angular

$ http.get返回的对象没有方法.示例:我有我的班级模型

export class Lab {

    constructor(
        public id: number,
        public name: string,
        public description: string,
        public isActive: boolean,
        public classes: Classes[]
    ) { }

    isActive(lab: Lab) {
        return this.isActive;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的服务中,我打电话给http取实验室

getLab(labId: number) {
    return this.http.get<Lab>(DidacticsServiceUrls.apiRoot + labId).toPromise();
}
Run Code Online (Sandbox Code Playgroud)

当我在某个组件中得到它时,方法isActive是未定义的,所以调用

lab.isActive();
Run Code Online (Sandbox Code Playgroud)

抛出异常.这有什么清洁的解决方案吗?

Deb*_*ahK 9

服务器只返回由定义对象的属性形成的数据.它实际上并不创建对象的实例.

尝试这样的事情:

this.lab = Object.assign(new Lab(), this.retrievedLab)
Run Code Online (Sandbox Code Playgroud)

this.retrievedLab从服务器返回的数据在哪里.

这应创建对象,然后将任何检索到的属性复制到其中.