AngularResolver返回undefined
创始人
2024-10-29 05:00:20
0

通常Angular Resolver返回undefined是因为它不能正确地获取到所需信息。解决此问题的一种方法是确保Resolver函数返回正确的Observable,并使用管道操作符过滤或映射数据。

例如,假设我们有一个名为MyResolver的Resolver,它从API获取用户的详细信息并返回Observable。如果返回值为undefined,则可以检查以下内容:

@Injectable({ providedIn: 'root' })
export class MyResolver implements Resolve {
  constructor(private userService: UserService) {}

  resolve(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ): Observable {
    const userId = route.paramMap.get('id');
    return this.userService.getUserDetails(userId);
  }
}

我们可以在Resolver中使用tap操作符,将获取到的用户信息输出到浏览器控制台:

resolve(
  route: ActivatedRouteSnapshot,
  state: RouterStateSnapshot
): Observable {
  const userId = route.paramMap.get('id');
  return this.userService.getUserDetails(userId).pipe(
    tap(user => console.log(user))
  );
}

然后在路由定义中使用Resolver:

const routes: Routes = [
  {
    path: 'user/:id',
    component: UserDetailsComponent,
    resolve: {
      user: MyResolver
    }
  }
];

UserDetailsComponent组件中,我们可以通过访问ActivatedRoute来获取解析器提供的数据:

constructor(private route: ActivatedRoute) {}

ngOnInit() {
  this.route.data.subscribe(data => {
    console.log(data.user); // should log the resolved user object
  });
}

相关内容

热门资讯

热点推荐!手机游戏挂机辅助软件... 热点推荐!手机游戏挂机辅助软件,兴动互娱游戏辅助器好用吗,详细开挂辅助教程(有挂详细);无需打开直接...
必看攻略!广东雀伸辅助器,长了... 必看攻略!广东雀伸辅助器,长了四人上品十三攻略,分享开挂辅助教程(有挂详细);无需打开直接搜索薇:1...
技巧知识分享!卡五星辅助软件,... 您好:卡五星辅助软件这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
科普!微友亲友圈辅助器,火神大... 您好:微友亲友圈辅助器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
指导大家!樱花之盛辅助真的假的... 您好:樱花之盛辅助真的假的这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
推荐一款!余音游戏决战十三水,... 推荐一款!余音游戏决战十三水,小闲川南宜宾辅助,实测开挂辅助教程(有挂规律);无需打开直接搜索加(薇...
最新技巧!爱来辅助器,衢州都莱... 最新技巧!爱来辅助器,衢州都莱辅助软件,了解开挂辅助教程(果真有挂)1、下载安装好衢州都莱辅助软件,...
玩家必看教程!雀神广东定制插件... 玩家必看教程!雀神广东定制插件,赖子三加一辅助,分享开挂辅助教程(的确有挂)1、下载安装好雀神广东定...
今日科普!同城游微信游戏辅助,... 今日科普!同城游微信游戏辅助,hhpoker辅助是真的吗,发现开挂辅助教程(有挂透明挂)1、下载安装...
必看攻略!九游破解版真的假的,... 必看攻略!九游破解版真的假的,心悦辅助,了解开挂辅助教程(有挂规律)1、下载安装好九游破解版真的假的...