我试图使用httpclient从http调用转换响应,并创建我创建的类的实例。
问题
HttpClient似乎没有使用响应对象的属性创建类的新实例。请帮帮我!
我尝试过创建一个类vs接口。不知道我还需要在这里做什么。
My Class
export class Escalation {
constructor(private NAME: string, private DESCRIPTION: string) { }
public get name() {
return this.NAME;
}
public set name(name: string) {
this.NAME = name;
}
public get description() {
return this.DESCRIPTION;
}
public set description(description: string) {
this.DESCRIPTION = description;
}
}My Service
public getEscalation(escalationName) {
return this.http.get(`${this.globals.baseRestUrl}/companies/escalations/${escalationName}`);
}我的组件
public escalation: Escalation = new Escalation('', '');
this.companiesService.getEscalation(escalationName).subscribe(
(escalationResponse: Escalation) => this.escalation = {
...escalationResponse
}, (error: any) => {
console.log(error);
}
);预期结果
我原以为我的响应会被抛出,以便在api回调中键入升级(我的类)。
实际结果
api返回如下所示的对象:
{
NAME: 'Escalation 1',
DESCRIPTION: 'This is a test description'
} 但最终this.escalation返回未定义的
我希望我解释得很清楚。如果你需要更多的信息,请告诉我!
发布于 2019-01-02 16:32:08
(escalationResponse: Escalation)代码行实际上并不打算从HttpClient转换响应,而是用于推断它是什么类型。
您可以考虑将代码调整为this.escalation = new Escalation(escalationResponse.NAME, escalationResponse.DESCRIPTION)。
我相信this.escalation = { ...escalationResponse }实际上只是在解构这些属性。
https://stackoverflow.com/questions/53887866
复制相似问题