Angular 如何使用管道/贴图返回角度为7的数组
当我通过HttpClient进行GET调用时,我想传回一个实际类型化对象的数组,而不是一个普通的“对象”,所以我尝试这样做:Angular 如何使用管道/贴图返回角度为7的数组,angular,rxjs,pipe,angular7,rxjs6,Angular,Rxjs,Pipe,Angular7,Rxjs6,当我通过HttpClient进行GET调用时,我想传回一个实际类型化对象的数组,而不是一个普通的“对象”,所以我尝试这样做: getExistingArsByLab(labId:number):可观察{ 返回此文件。http .get(`${this.baseUrl}/ar?labId=${labId}`) .烟斗( 地图(x=>{ const ret=EhsAssessmentAr.fromJson(x); ret.ar=this.sanitizer.sanitize(SecurityCont
getExistingArsByLab(labId:number):可观察{
返回此文件。http
.get(`${this.baseUrl}/ar?labId=${labId}`)
.烟斗(
地图(x=>{
const ret=EhsAssessmentAr.fromJson(x);
ret.ar=this.sanitizer.sanitize(SecurityContext.HTML,ret.ar.replace(/\n/g,“
”);
返回ret;
})
)
}
声明了fromJson
方法以返回正确的类,并且我认为,既然我通过map
发送了这个,那么我将返回一个数组。我对RxJs真的很陌生,所以我肯定我只是在做一些完全愚蠢的事情
我得到了错误:
TS2322:类型“Observable”不可分配给类型“Observable”`
您可以strong键入映射响应,并检查是否返回数组非单个元素:
getExistingArsByLab(labId:number):可观察{
返回此文件。http
.get(`${this.baseUrl}/ar?labId=${labId}`)
.烟斗(
地图((x:EHSASSementar[])=>{
const ret=EhsAssessmentAr.fromJson(x);
ret.ar=this.sanitizer.sanitize(SecurityContext.HTML,ret.ar.replace(/\n/g,“
”);
返回ret;
})
)
}
这已经是Angular 7 HttpClient的默认行为。因此,除非您需要对html或类似示例中的内容进行额外处理,否则您只需要以下内容:
getExistingArsByLab(labId: number): Observable<EhsAssessmentAr[]> {
return this.http
.get<EhsAssessmentAr[]>(`${this.baseUrl}/ar?labId=${labId}`)
}
getExistingArsByLab(labId:number):可观察{
返回此文件。http
.get(`${this.baseUrl}/ar?labId=${labId}`)
}
的可能重复项在我看来并不相同。我声明为数组返回类型,我觉得我返回的是数组类型。你所指的是返回数组或对象。你检查过了吗?你能解决问题吗?不是在我的计算机上,但我认为问题是我使用的贴图采用数组而不是像“普通”贴图那样的单个对象是的,这更好,并且与RxJS V6.0++兼容,谢谢