Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何使routerLink在激活时转到其他链接?_Angular - Fatal编程技术网

Angular 如何使routerLink在激活时转到其他链接?

Angular 如何使routerLink在激活时转到其他链接?,angular,Angular,使用angular2/4/5/6路由器,我有多个链接: <a [routerLink]="/page1" [routerLinkActive]="class here">Link 1</a> <a [routerLink]="/page2" [routerLinkActive]="class here">Link 2</a> <a [routerLink]="/page3" [routerLinkActive]="class here">

使用angular2/4/5/6路由器,我有多个链接:

<a [routerLink]="/page1" [routerLinkActive]="class here">Link 1</a>
<a [routerLink]="/page2" [routerLinkActive]="class here">Link 2</a>
<a [routerLink]="/page3" [routerLinkActive]="class here">Link 3</a>
链接1
链接2
链接3
此链接在“FrameComponent”中的所有页面上都可用,其中页面上有一个可更改的路由器出口。我想这样做,如果用户点击“链接1”并转到路由/页面1。。。然后再次单击子“链接1”,而不是尝试转到“/page1”,而是转到“/welcomepage”。这应该适用于页面上的每个链接

例如,如果用户单击/page2,它会将他们带到该路由,并且链接处于“活动”状态,但如果用户再次单击“链接2”,它会将他们带回到“/welcomepage”路由

如果用户单击链接将他们带到/page2,如果用户尝试单击“链接1”,则会将他们带到/page1。只有当用户已经激活了一个路由,在该路由中,如果用户单击了相同的按钮,则具有routerLink的按钮将重定向用户以导航到“/welcomepage”

执行此操作的最佳方法是什么?

  • <li class="nav-item" routerLinkActive="active">
        <a class="nav-link" [routerLink]="['/page1']">Link 1</a>
    </li>
    <li class="nav-item" routerLinkActive="active">
        <a class="nav-link" [routerLink]="['/page2']">Link 2</a>
    </li>
    <li class="nav-item" routerLinkActive="active">
        <a class="nav-link" [routerLink]="['/page3']">Link 3</a>
    </li>
    
    链接1
  • 链接2
  • 链接3
  • 而不是

     <a [routerLink]="/page1" [routerLinkActive]="class here">Link 1</a>
    

    您能否显示此函数处理导航时的外观?是否有某种方法以编程方式触发RouterLink active class active,以突出显示是否处于活动状态,如果“在活动状态下再次单击”,则突出显示是否处于非高光状态?似乎很复杂,如果我说10个链接,我必须有一个数组来跟踪每一个。
    <a (click)=“navigate('page1')” [routerLinkActive]="class here">Link</a>
    
    // Import Router and provide it in the cosntructor as router
    public navigate(path: string): void {
        if(this.router.url.includes(path) {
            this.router.navigate(['/welcomepage']);
        } else {
            this.router.navigate([`/${path}`]);
        }
    }