首页 > 解决方案 > 如何将我的 Typescript 中的 Id 传递给解析器?

问题描述

我试图弄清楚 Angular 如何使用 getById 服务。我从一开始就公开了一个 Rest Api 服务,它返回一个布尔值并检查一个项目是否在我最喜欢的 List 中:它获取一个元素的 id 作为参数。在我的前端,我为基本 Crud 操作使用 baseApi 服务,为每个请求使用解析器:所以我需要做的是如何将 id 从我的方法传递给解析器以及如何定义链接结构(URL )。

这是我的代码以便更好地理解:

getById(link, id:number){
  this.header=this.createHeader();
  return this.http.get(this.apiurl+link+id,this.header).map(this.extractData);

}
* 我在解析器中实际不正确的变换方法:

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Item> {

  return this.service.getById(item/isFavorite/1');

 }

checkItem(item : Item){

  this.checkfav=this.route.snapshot.data.isfav;

/**
 * checkfav is a bool that should m rest api defined in resolver return
 */


}

标签: angularrestresolver

解决方案


route.params['id'];如果您在当前激活的 url 中具有相同的 id,则可以直接从其他函数中获取它,而不是从其他函数中获取它。

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Item> {    
   const id = route.params['id'];
   return this.service.getById('item/isFavorite/' + id);    
}

推荐阅读