1
終於在嘗試將不同用戶的角色轉移到應用的不同區域時終於獲得了CanActivate。但是,如果他們走錯了路線,我不能得到這個重定向。這裏是我有:CanActivate Promise <boolean>在拒絕後不會導航byurl
canActivate(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Promise<boolean> {
return new Promise((resolve, reject) => {
this.af.auth.subscribe(user => {
if (user) {
let userProfile = firebase.database().ref(`/users/${user.uid}`);
userProfile.once("value", (snapshot) => {
let userInfo = snapshot.val().role;
if (userInfo === "GroupA") {
resolve(true);
} else {
reject(this.router.navigate(['/login']));
}
});
} else {
reject(this.router.navigate(['/login']));
}
});
});
}
爲什麼不router.navigate? 100%開放聽取更好的想法來做到這一點。
錯誤的路線是什麼意思?意味着沒有定義的路線。你可以在你的路由文件中使用野性字符**來重定向,如果他走錯了路線 –
這兩條路線都已定義。/GroupA和/ GroupB,但任何一個都不能訪問任何用戶路由。所以,**會將這兩個視爲有效路線。 – dhndeveloper