Angular 如何通过路由路径从组件调用指定的方法?

Angular 如何通过路由路径从组件调用指定的方法?,angular,Angular,我有以下路线规则: { path: 'logout', component: LoginComponent, data: { title: extract('Login') } }, 单击后,我需要在组件LoginComponent中调用方法logout 我的链接是: <a class="nav-link topRightLink" routerLink="/logout">Logout</a> 注销 在LoginComponent中,您有一个方法注销()您只需单击

我有以下路线规则:

{ path: 'logout', component: LoginComponent, data: { title: extract('Login') } },
单击后,我需要在组件
LoginComponent
中调用方法logout

我的链接是:

<a class="nav-link topRightLink" routerLink="/logout">Logout</a> 
注销

LoginComponent
中,您有一个方法
注销()
您只需单击链接即可调用它,如下所示:

this.router.navigate(['/logout']);
注销

然后在
注销
方法中,您可以使用如下路由器进行路由:

this.router.navigate(['/logout']);
这使您可以在路由之前灵活地在中执行其他操作。 您必须导入路由器:

import {Router} from '@angular/router'; 
然后将其注入您的
LoginComponent

使用

<a class="nav-link topRightLink" [routerLink]="['/logout']">Logout</a>

一个方法不需要整个组件。特别是在没有视野的情况下。而且也不需要路由器

将logout()方法放在组件的右侧,
标记是:

查看:

<a class="nav-link topRightLink" (click)="logOut()" >Logout</a>
logOut(){
    //remove the local storage content, display a message, redirect to login page, etc..
}
如果您希望在应用程序中共享该功能,还可以调用共享服务方法

logOut(){
  this.sharedService.logOut();
}

但是,如果我在另一个组件中有方法,您可以使用@Output decorator与其他组件共享该方法,或者您可以通过服务访问它,这样您就可以为它创建一个服务,并在需要的地方注入该服务。您需要调用一个方法吗?或者您想重定向?您的答案中有语法错误(缺少一些引号)。我试图修复该示例,请告诉我我的编辑是否不正确,因此如果需要,我将取消该示例。您不能在
ngOnInit
中执行此操作吗?