【问题标题】:Set state based on current route in Angular2 (RC3)根据 Angular2 (RC3) 中的当前路由设置状态
【发布时间】:2016-10-27 17:41:27
【问题描述】:

假设我有一个典型的设置,我可以选择一个选项的侧边菜单和右侧显示该选项内容的区域。

我想使用一系列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>
`
})

此外,我希望突出显示相应的&lt;li&gt;,例如使用class="active"。我怎么做?

当然,总是有click() 加上事件处理程序,但我认为这里只使用routerLink 比处理事件要干净得多。

我想提供一个 plnkr,但是从 @angular/router 导入后,当前的 Angular2 模板似乎已损坏,我猜这是因为 npm 中的 RC3 缺少路由器包。

【问题讨论】:

    标签: angular angular2-routing angular2-template


    【解决方案1】:

    我希望突出显示相应的&lt;li&gt;,例如使用class="active"。我该怎么做?

    我们知道 angular2 的路由器不断变化,所以 ASAIK 使用 angular2 的新路由器,这很容易使用 routerLinkActive 中的 routerLink 指令。例如

    <a [routerLinkActive]="['active']" [routerLink]="['/Demo']">
        Hello Link
    </a>
    

    这里正在工作 Working Example

    还有很多类似的问题

    更新

    有时会报错

    无法读取未定义的属性“pathsWithParams” 所以你也必须用 routerLinkActive 来定义它

    [routerLinkActiveOptions]="{exact:true}" 
    

    看这里

    【讨论】:

    • 您可以订阅当前路径以帮助创建面包屑吗?
    • 抱歉我不知道
    猜你喜欢
    • 2017-07-18
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多