1

我对 Angular 比较陌生,并且正在尝试在我的 NavBar 上获得一个亮点。我已经阅读了其他一些文章,但它们并没有太大帮助。

在我的app-routing.ts文件中

const routes: Routes = [
 { path: '', redirectTo: '/dashboard', pathMatch: 'full' },
 { path: 'dashboard', component: DashboardComponent },
 { path: 'guided-trades', component: GuidedTradeComponent },
 { path: 'guided-trade-detail/:id', component: GuidedTradeDetailComponent }, 
 { path: "**", redirectTo: '/dashboard'}
];

在我的app.component.html文件中

<ul class="navbar-nav">
  <li class="nav-item">
    <a id="positions" class="nav-link" routerLink="/positions" routerLinkActive="active">Positions</a>
  </li>         
  <li class="nav-item">
    <a id="guidedtrades" class="nav-link" routerLink="/guided-trades" routerLinkActive="navlinkactive">Guided Trades</a>
  </li>
</ul>  

在我的guides-trade.component.ts文件中,我有一个列表,当单击一行时,我会导航到该项目的详细记录(这工作正常,我会进入正确的页面)

onRowClicked(row) {
  this.router.navigateByUrl('/guided-trade-detail/' + row.recID);
}

在我的styles.css文件中

.navlinkactive {
  border-bottom: 4px solid #007dba;
 }

当我从导航栏中单击指南交易时,它会正确突出显示。但是,我想要的是,如果我导航到引导交易详细记录,引导交易导航项仍然突出显示。我在 app-routing.ts 文件中尝试过尝试子路由,但我无法让它工作。

将 [ngClass]="{'active':guidedtradedetail.isActive }" 之类的内容添加到app.component.html文件中的导航链接会更容易吗?

4

1 回答 1

2

您需要将routerLinkActiveOptions确切的设置设置为false

<div routerLinkActive="active-link" [routerLinkActiveOptions]="{exact: false}">
于 2018-07-29T06:57:15.047 回答