Angular 7 HttpClient 响应类型为 class
Angular 7 HttpClient response type as class
我正在尝试使用 httpclient 从 http get 调用转换我的响应,并创建我创建的 class 的实例。
问题
HttpClient 似乎没有使用其响应对象的属性创建我的 class 的新实例。请帮忙!
我尝试创建一个 class vs 界面。不知道我还需要在这里做什么。
我的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;
}
}
我的服务
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 回调时强制转换为类型升级(我的 class)。
实际结果
api returns 像这样的对象:
{
NAME: 'Escalation 1',
DESCRIPTION: 'This is a test description'
}
但最终 this.escalation returns 未定义
希望我解释得很好。如果您需要更多信息,请告诉我!
(escalationResponse: Escalation)
行代码并非真正用于 cast 来自 HttpClient 的响应,而是 infer它是什么类型的。
您可以考虑将代码调整为 this.escalation = new Escalation(escalationResponse.NAME, escalationResponse.DESCRIPTION)
我相信this.escalation = { ...escalationResponse }
实际上只是在解构属性。
我正在尝试使用 httpclient 从 http get 调用转换我的响应,并创建我创建的 class 的实例。
问题
HttpClient 似乎没有使用其响应对象的属性创建我的 class 的新实例。请帮忙!
我尝试创建一个 class vs 界面。不知道我还需要在这里做什么。
我的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;
}
}
我的服务
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 回调时强制转换为类型升级(我的 class)。
实际结果
api returns 像这样的对象:
{
NAME: 'Escalation 1',
DESCRIPTION: 'This is a test description'
}
但最终 this.escalation returns 未定义
希望我解释得很好。如果您需要更多信息,请告诉我!
(escalationResponse: Escalation)
行代码并非真正用于 cast 来自 HttpClient 的响应,而是 infer它是什么类型的。
您可以考虑将代码调整为 this.escalation = new Escalation(escalationResponse.NAME, escalationResponse.DESCRIPTION)
我相信this.escalation = { ...escalationResponse }
实际上只是在解构属性。