【发布时间】:2019-09-18 22:49:08
【问题描述】:
我想根据 store 中的值实现路由器保护。如果用户登录到应用程序,我想获取该用户的角色并激活我的子模块路由的某些路由。
我将发布我当前的实现,但这根本不起作用
p.s 我没有使用 Angular 路由器商店
canActivate(): {
return this.store.pipe(select(selectUser)).pipe(
skip(1),
map((user) => {
const userObj: any = user
if (userObj.userRole === "Admin") {
this.router.navigateByUrl('admin/tourprovider/genaral-infomation');
return true;
} else {
this.router.navigateByUrl('home')
return false;
}
})
)
}
【问题讨论】:
-
但这根本不起作用更具体地说,发生了什么?
-
它不会导航到家或相关路线。只显示页眉和页脚。
-
您使用的是哪家商店?本地存储?
-
@AbdulAleem nope ngrx 商店
-
代替
skip(1)尝试take(1)或不使用skip(1)。另外,检查开发工具(控制台)中是否有异常。
标签: angular ngrx-store angular-router-guards