我在angular 7应用中具有以下路线。
app-routing.module.ts
const routes: Routes = [
{ path: '', component: HomeComponent, canActivate: [AuthGuard] },
{ path: 'login', component: LoginComponent },
// otherwise redirect to home
{ path: '**', redirectTo: '/login' }
];
auth.service.ts:
func logout() {
this.httpClient.get(config.logoutURL);
window.location.href='/';
}
现在,当用户在地址栏中键入不存在的URL时,我想注销用户(使用auth.service.ts
中定义的功能,然后将用户重定向到根URL。
是否有可能在路由器本身中执行此功能调用+重定向,而不是编写诸如PageNotFound
之类的虚拟组件?我不想有一个额外的组件,因为要做的就是在ngInit上的iiuc,它只会调用logout
函数。有什么办法可以做到这一点?
由于您已经将所有不匹配的路径重定向到LoginComponent
,因此可以在LoginComponent
构造函数中调用您的方法,例如
constructor(authService:AuthService){
authService.logout();
}