如何使用角度路径解析器从api解析数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用角度路径解析器从api解析数据相关的知识,希望对你有一定的参考价值。
我试图使用角度路由解析器在显示之前加载端点,但我找不到办法解决它如何在我的解析器中传递我的API的url作为参数?由于某些独特的原因,我需要传入一个参数,所以我不能在服务中传递api。
这是我的服务
@Injectable()
export class HnService {
constructor(private http: HttpClient) {}
getTopPosts(endpoint) {
return this.http.get(endpoint);
}
}
这是我的解析器文件
@Injectable()
export class HnResolver implements Resolve<any> {
constructor(private hnService: HnService) {}
resolve() {
return this.hnService.getTopPosts(?);
}
}
答案
如果您只想在解析程序中传递数据并访问此数据,则可以在定义路径时使用data属性。
首先你的路线应该是这样的
{
path: 'hn/:id',
component: HnDetailsComponent,
resolve: {
response: HnResolver
},
data:{
apiURL: 'my/api/url'
}
}
在决心
@Injectable()
export class HnResolver implements Resolve<any> {
constructor(private hnService: HnService) {
}
resolve(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<any> {
return this.hnService.getTopPosts(route.data['apiURL']);
}
}
另一答案
首先你的路线应该是这样的
{
path: 'hn/:id',
component: HnDetailsComponent,
resolve: {
response: HnResolver
},
}
你的解析器应该喜欢这个
@Injectable()
export class HnResolver implements Resolve<any> {
constructor(private HnService: hnService) {
}
resolve(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<any> {
return this.hnService.getTopPosts(route.data['id']);
}
}
注意:假设您的路线类似于qazxsw点,其中4是您想要查看详细信息的hn的ID
在HnDetailsComponent中,您可以访问已解决的hn
http://localhost:4200/hn/4
我希望这有助于你解决麻烦。
以上是关于如何使用角度路径解析器从api解析数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 android 中使用 DOM 或 SAX 解析器从 XML 读取子节点