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)德普之星有透视辅助吗辅助挂:进...
透视线上!aapoker发牌逻... 透视线上!aapoker发牌逻辑(透视)ai插件(本来是真的有挂);1、起透看视 aapoker发牌...
透视安装!德普之星辅助软件(透... 透视安装!德普之星辅助软件(透视)透视挂(真是有挂)1、玩家可以在德普之星辅助软件软件透明挂俱乐部对...
透视计算!aapoker插件(... 透视计算!aapoker插件(透视)发牌逻辑(本来真的有挂)1、透视计算!aapoker插件(透视)...
透视黑科技!德普之星辅助器(透... 透视黑科技!德普之星辅助器(透视)透视(一直是真的有挂)德普之星辅助器软件透明挂微扑克wpk插件教程...
透视有挂!aapoker能控制... 透视有挂!aapoker能控制牌吗(透视)透视方法(都是有挂)1、上手简单,内置详细流程视频教学,新...
透视辅助!德普之星怎么设置埋牌... 透视辅助!德普之星怎么设置埋牌(透视)透视辅助软件下载(原来真的是有挂)一、德普之星怎么设置埋牌AI...
透视挂!aapoker安装包怎... 透视挂!aapoker安装包怎么使用(透视)ai插件(总是真的是有挂)透视挂!aapoker安装包怎...
透视辅助!德普之星透视辅助软件... 透视辅助!德普之星透视辅助软件是真的吗(透视)透视挂(其实真的有挂)1、首先打开德普之星透视辅助软件...
透视辅助!德普之星有辅助软件吗... 透视辅助!德普之星有辅助软件吗(透视)透视软件免费入口官网(真是是有挂)运德普之星有辅助软件吗辅助工...