【问题标题】:RouterLinkActive is not set after reloading a page重新加载页面后未设置 RouterLinkActive
【发布时间】:2018-05-07 04:53:12
【问题描述】:

我正在处理路由和导航。我正在使用[routerLinkActive]="['active']" 使链接处于活动状态。当我导航到其他路线时它工作正常。

但是当刷新当前页面时,'routerLinkActive' 不起作用并且没有链接处于活动状态。我需要选择该链接以使其再次处于活动状态。 重新加载页面后,有什么方法可以使该链接处于活动状态。

样本:

app-routing.ts

   {
    path: 'home', 
    children: [
      {path: 'product', component: ProductComponent},
      {path: 'dualList', component: DualListComponent},
      {path: 'member', component: MemberComponent},
      {path: '', component: HomeComponent}
    ]
  },
  {path: 'about', component: AboutComponent}

home.component.html

  <a [routerLink] = "['/home', 'product']" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">Product</a>
  <a [routerLink] = "['/home', 'dualList']" routerLinkActive="active">Dual List</a>
  <a style="padding-left: 20px" [routerLink] = "['/home', 'member']" routerLinkActive="active">Member</a>

任何帮助将不胜感激。

【问题讨论】:

  • 请添加一些代码!
  • 我已编辑,请查看
  • 将所有这些锚点包裹在 li 标签内。并将 routerLinkActive 放置在各个 LI 上,而不是锚点上。
  • 也试过了,但还是不行

标签: angular angular-routing angular-router routerlinkactive


【解决方案1】:

试试这个希望它会工作, 我想你不知道 Renderer read this:

在 home.component.ts 中(与 home.component.html 相关)

import {Renderer} from '@angular/core';

export class homeComponent {
 userTypeSelect(event:any){
    event.preventDefault()
    this.render.setElementClass(event.target,"active",false);
  }

  constructor(private render:Renderer) {
  }
}

home.component.html

<li role="presentation" (click)="userTypeSelect($event)" [routerLinkActive]="['active']">
   <a routerLink="/product">Product page</a>
</li>

【讨论】:

  • (click)="userTypeSelect($event)" 添加到你想要的。
  • 我试过了,但它不起作用..一旦页面被刷新,主页链接就失效了
  • 您是否为您拥有的链接添加了代码“(click)="userTypeSelect($event)”?
  • 我的个人github页面here am using
  • 将您的 .ts 和 .html 发送到 shanthece@gmail.com
【解决方案2】:

试试这样:

您只能为主页 url 设置 routerLinkActiveOptions :

<ul>
    <li routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
        <a routerLink="/">Home</a>
    </li>
    <li routerLinkActive="active">
      <a [routerLink]="['home/product']">Product</a>
    </li>
    <li routerLinkActive="active">
      <a [routerLink]="['home/dualList']">Dual List</a>
    </li>
    <li routerLinkActive="active">
      <a [routerLink]="['home/member']">Member</a>
    </li>
</ul>

【讨论】:

  • @Aakriti add routerLink like [routerLink]="['home/product']" 我已经编辑了答案,请检查并尝试这样
猜你喜欢
  • 1970-01-01
  • 2021-06-18
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 2019-05-02
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多