angular - 如何在 Angular 6 中将查询字符串传递给我的服务
问题描述
我有一个调用这样的服务的组件:
this.resultService.getResults().subscribe(
results => {
this.results = results;
this.searchResults = results.SearchResults;
this.searchResults = this.processResults(this.searchResults);
},
error => this.errorMessage = <any>error
);
该服务使用 HttpClient 从网站获取数据。现在,我在服务中使用静态 URL 仅用于测试。但是,既然我知道该服务有效并且正在返回结果,我想传入要在 URL 中使用的查询字符串,而不是对其进行硬编码。这可能吗?我的服务包含以下代码:
private resultsUrl = 'https://testingsite.com/api/orgs/search?primaryCategory=plumber&city=denver&stateProvince=CO&PageNumber=1';
constructor(private http: HttpClient) { }
getResults(): Observable<any> {
return this.http.get<any>(this.resultsUrl, httpOptions).pipe(
tap(data => console.log('Response Data: ' + JSON.stringify(data))),
catchError(this.handleError)
);
}
private handleError(err: HttpErrorResponse) {
let errorMessage = '';
if (err.error instanceof ErrorEvent) {
errorMessage = 'An error occurred: ${err.status}, error message is: ${err.message}';
}
console.error(errorMessage);
return throwError(errorMessage);
}
解决方案
您可以使用 `` 并将变量放入 $ 中,例如:
getResults(variable:string): Observable<any> {
let url = `this.baseUrl/admin/user/${variable}`
return this.http.get<any>(url, httpOptions).pipe(
tap(data => console.log('Response Data: ' + JSON.stringify(data))),
catchError(this.handleError)
);
}
推荐阅读
- android - 在片段中使用 requireActivity() 或 getActivity()
- android - 导航组件对话框片段 NoSuchElementException
- java - 为什么 IDE II 看不到黄瓜的自定义注册参数?
- c++ - 为什么 std::move() 中的 static_cast 会擦除参数的值?
- angular - 通过网络服务格式化电话号码
- python - 将 8 亿条数据插入 postgres 数据库的最快方法
- c - 这是什么意思:指向 void 的指针永远不会等于另一个指针?
- java - 如何在 ScriptFunction Polarion 中使用 UserfrindlyException
- cookies - 为什么我的 WAS Liberty 环境中缺少 LTPA Cookie?
- opengl - SSBO 可以在同一个着色器中读/写吗?