根据 Angular2 (RC3) 中的当前路由设置状态
Set state based on current route in Angular2 (RC3)
假设我有一个典型的设置,一个侧面菜单,我可以在其中选择一个选项,右侧的一个区域显示该选项的内容。
我想使用一系列 routerLink
指令来构建侧边菜单,如下所示:
@Component({
selector: 'side-menu',
template: `
<div>
<ul>
<li><a [routerLink]="['/option1']">Option 1</a></li>
<li><a [routerLink]="['/option2']">Option 2</a></li>
<li><a [routerLink]="['/option3']">Option 3</a></li>
</ul>
</div>
`
})
此外,我希望突出显示相应的 <li>
,例如使用 class="active"
。我怎么做?
当然,总是有 click()
加事件处理程序,但我认为这里只使用 routerLink
比处理事件要干净得多。
我想提供一个 plnkr,但是从 @angular/router
导入后,当前的 Angular2 模板似乎已损坏,我猜这是因为 npm 中的 RC3 缺少路由器包。
I'd like the corresponding <li>
to be highlighted, using class="active"
, for example. How do I do that?
据我们所知,angular2 的路由器不断变化,因此 ASAIK 和 angular2 的新路由器非常容易使用
routerLinkActive
指令在你的 routerLink
中。例如
<a [routerLinkActive]="['active']" [routerLink]="['/Demo']">
Hello Link
</a>
这里是 plunker Working Example
还有很多类似的问题
- In Angular 2 how do I assign a custom class to an active router link?
更新
有时会抛出错误
Cannot read property 'pathsWithParams' of undefined
so you have to define this as well with routerLinkActive
[routerLinkActiveOptions]="{exact:true}"
看这里
假设我有一个典型的设置,一个侧面菜单,我可以在其中选择一个选项,右侧的一个区域显示该选项的内容。
我想使用一系列 routerLink
指令来构建侧边菜单,如下所示:
@Component({
selector: 'side-menu',
template: `
<div>
<ul>
<li><a [routerLink]="['/option1']">Option 1</a></li>
<li><a [routerLink]="['/option2']">Option 2</a></li>
<li><a [routerLink]="['/option3']">Option 3</a></li>
</ul>
</div>
`
})
此外,我希望突出显示相应的 <li>
,例如使用 class="active"
。我怎么做?
当然,总是有 click()
加事件处理程序,但我认为这里只使用 routerLink
比处理事件要干净得多。
我想提供一个 plnkr,但是从 @angular/router
导入后,当前的 Angular2 模板似乎已损坏,我猜这是因为 npm 中的 RC3 缺少路由器包。
I'd like the corresponding
<li>
to be highlighted, usingclass="active"
, for example. How do I do that?
据我们所知,angular2 的路由器不断变化,因此 ASAIK 和 angular2 的新路由器非常容易使用
routerLinkActive
指令在你的 routerLink
中。例如
<a [routerLinkActive]="['active']" [routerLink]="['/Demo']">
Hello Link
</a>
这里是 plunker Working Example
还有很多类似的问题
- In Angular 2 how do I assign a custom class to an active router link?
更新
有时会抛出错误
Cannot read property 'pathsWithParams' of undefined so you have to define this as well with routerLinkActive
[routerLinkActiveOptions]="{exact:true}"
看这里