【发布时间】:2020-08-14 02:24:58
【问题描述】:
我有一个routes.ts 文件,如下所示:
import { AuthGuardService as AuthGuard } from '../services/auth-guard.service';
export const routes:Routes = [
{path : '' , redirectTo : '/home' , pathMatch : 'full'},
{path: 'home' , component : HomeComponent},
{path: 'users' , component : UsersComponent, canActivate: [AuthGuard]},
];
还有一个像这样的auth-guard.service.ts 文件:
export class AuthGuardService implements CanActivate {
constructor(public auth: AuthService, public router: Router) {}
canActivate(): boolean {
if (!this.auth.isLoggedIn()) {
this.router.navigate(['home']);
return false;
}
return true;
}
}
它适用于像users 这样的已知路由,但是当我尝试像homeee 这样的未知路由时,它不能正常工作,并显示一个带有页眉和页脚且中间没有内容的页面。如何将所有未知路由重定向到主组件?
我也想知道这是我喜欢做的事情的好方法吗? (我喜欢只有登录的用户才能看到除主组件之外的其他组件,并且登录前的所有路由都被重定向到主组件。
【问题讨论】:
标签: angular redirect routes canactivate angular-activatedroute