Angular 7在路由上调用服务方法

问题描述 投票:0回答:1

我在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函数。有什么办法可以做到这一点?

angular angular7 angular7-router
1个回答
0
投票

由于您已经将所有不匹配的路径重定向到LoginComponent,因此可以在LoginComponent构造函数中调用您的方法,例如

constructor(authService:AuthService){
authService.logout();
}

demo

© www.soinside.com 2019 - 2024. All rights reserved.