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
  });
}

相关内容

热门资讯

普及透视!pokerrrr2辅... 普及透视!pokerrrr2辅助,aapoker辅助软件合法吗,方针教程(有挂透明挂)-哔哩哔哩1、...
辅助透视!wejoker黑侠辅... 辅助透视!wejoker黑侠辅助器,佛手在线大菠萝智能辅助器,攻略教程(真的有挂)-哔哩哔哩佛手在线...
专业透视!大菠萝免费辅助,哈糖... 专业透视!大菠萝免费辅助,哈糖大菠萝开挂,攻略教程(有挂助手)-哔哩哔哩1、每一步都需要思考,不同水...
辅助透视!智星菠萝有挂吗,we... 辅助透视!智星菠萝有挂吗,wepoker透视脚本免费下载,模板教程(发现有挂)-哔哩哔哩1、进入到w...
关于透视!hhpoker有没有... 关于透视!hhpoker有没有作必弊挂,pokerworld辅助器,技法教程(有挂方略)-哔哩哔哩1...
必备透视!wpk透视工作室,f... 必备透视!wpk透视工作室,fishpoker透视,指南教程(有挂猫腻)-哔哩哔哩必备透视!wpk透...
教你透视!uupoker有透视... 教你透视!uupoker有透视吗,werplan辅助软件,方式教程(有挂助手)-哔哩哔哩1、用户打开...
辅助透视!epoker底牌透视... 辅助透视!epoker底牌透视,红龙poker辅助,大纲教程(有挂功能)-哔哩哔哩1、用户打开应用后...
揭露透视!wpk透视辅助靠谱吗... 揭露透视!wpk透视辅助靠谱吗,werplan脚本,绝活教程(有挂辅助)-哔哩哔哩1、操作简单,无需...
开挂透视!wepoker开脚本... 开挂透视!wepoker开脚本视频,wpk刷入池率脚本,策略教程(新版有挂)-哔哩哔哩1、完成wep...