gpt4 book ai didi

javascript - Angular 2可以激活: retrieve value in component

转载 作者:行者123 更新时间:2023-12-03 04:00:04 24 4
gpt4 key购买 nike

如何从组件内部获取路由的 canActivate 参数的值?

{
path: "dashboard",
component: DashboardComponent,
canActivate: [AuthGuard] // => This one
}

我这么问是因为我想显示/隐藏模板中的元素,具体取决于用户是否连接。

所以,现在,我正在组件内部调用身份验证服务,但随后它会发出两次调用,一次来自防护,另一个来自组件。

ngOnInit() {
this.authService.canAccess().then(
auth => this.canAccess = auth
);
}

有没有办法订阅某个路由事件并获取 canActivate 属性的值?

最佳答案

也许使用解析器?在获取一些数据之前它不会启动组件

{
path: 'path',
component: SomeComponent,
resolve: {someVarYouNeed: someResolver}
}

class someResolver implements Resolve

constructor (private service: MyService) {
return service.getData.map(data => data.json())
}

在您的组件中:

ngOnInit() {
this.varYouNeed = this.route.snapshot.data['someVarYouNeed'];
}

请记住,解析器应该返回 Observable,并且来自此 Observable 的数据根据​​路由中解析器中使用的名称作为属性附加到路由数据

关于javascript - Angular 2可以激活: retrieve value in component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com