【发布时间】:2021-09-20 16:49:38
【问题描述】:
我有一个角度服务,它从后端返回一个 Observable,定义为:
GetAllMyResponses(): Observable<ResponsesGridResult> { ..... }
模型的声明方式如下:
export class GridResult {
a: string;
b: Date;
c: string;
d: string;
}
export class ResponsesGridResult {
public rowCount: number;
public summaries: GridResult[];
}
所以现在当我从我的组件中使用我的方法时,我会这样做:
private getResponsesSubscription : Subscription;
....
.....
this.getResponsesSubscription = this.myservice.GetAllMyResponses()
.pipe(delay(500))
.subscribe((result) => {
this.selected = result.summaries;
});
我的问题是
this.selected
声明为选中:responseSummary[] = [];
是在表单中声明的不同类型:
export class responseSummary {
a: string;
b: Date;
c: string;
d: string;
e: string;
f: string;
}
export class ResponsesSummaryGridResult {
public rowCount: number;
public summaries: responseSummary [];
}
responseSummary 对象包含 GridResult 中的所有属性名称以及额外名称。
所以我不能这样做 this.selected = result.summaries,因为返回的对象与我尝试设置的对象不同。有没有办法将一个对象映射到另一个对象上?我不能将 selected 声明为同一类型,因为它已在系统的其他部分使用。
【问题讨论】:
标签: angular