2016-11-04 2 views
2

я установки следующих маршрутов для RouterModule на app.module.ts:маршрутизация пути «/» для компонентного и подсветки пункта меню на основе routerLinkActive

RouterModule.forRoot([ 
    { path: 'inbox', component: InboxComponent }, 
    { path: 'report/request', component: RequestReportComponent }, 
    { path: 'report/create', component: CreateReportComponent }, 
    { path: '', component: InboxComponent } 
]) 

И я распечатывание моего меню со следующим шаблоном:

<div *ngFor="let item of menuItems"> 
    <li routerLinkActive="active"> 
     <a [routerLink]="item.href"> 
      <i class="{{ item.iconClasses }}"></i> 
      <span class="menu-item-key"> 
       {{ item.name }} 
      </span> 
     </a> 
    </li> 
</div> 

Так что, когда я открываю страницу с пути по умолчанию /, он правильно отображает компоненту по умолчанию, но <a> тег подсветка не будет работать, потому что он, вероятно, ожидает, что это соответствует /inbox явно:

enter image description here

Однако, если выбрать пункт меню, который отображается /inbox, выделяя работы, как и ожидалось (и изменяет URL, а).

enter image description here

Что рекомендуемый способ сделать эту работу? Есть ли какой-либо выход из этого окна, чтобы выполнить это или какое-либо обходное решение необходимо?

ответ

2

Использование

{ path: '', pathMatch: 'full', redirectTo: 'inbox' } 

вместо

{ path: '', component: InboxComponent } 
+0

спасибо, это работает. Является ли эта стратегия (перенаправление на компонент, в конечном итоге изменение URL-адреса) рекомендуемой практикой с маршрутизатором с угловым2? – everton

+1

Да. https://angular.io/docs/ts/latest/guide/router.html#!#redirect –

 Смежные вопросы

  • Нет связанных вопросов^_^