我在Angular中写了一个方法,并通过传递参数q='status'来执行它。然而,第一个console.log(params)没有包含q='status',而第二个console.log(params)包含了它。为什么呢?
getHospitalProfile(urlName: string, q: string | null = null): Observable<any> {
let params = new HttpParams();
if (q !== null) {
params = params.set('q', q);
console.log(params);
}
params = params.set('q', 'status');
console.log(params);
return this.http.get(`${this.apiUrl}/hospitals/${urlName}`, {
...this.httpOptions,
observe: 'response',
params: params
})
.pipe(
map((res: HttpResponse<any>) => {
if (res.status === 200) {
return res.body;
}
}),
catchError(error => {
throw error('ng');
})
);
}
使用.append(q)
。.set()
用于替换
对不起。问题的实现没有问题,问题是由其他事情引起的。感谢所有提供答案的人。