首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由器链接行为在Angular2测试版中被破坏

路由器链接行为在Angular2测试版中被破坏
EN

Stack Overflow用户
提问于 2015-12-23 16:15:39
回答 4查看 579关注 0票数 2

我想突出显示当前活动的链接

代码语言:javascript
复制
<a [routerLink]="['/route']" />

在呈现之后,我将得到一个具有正确链接的<a>标记,这很好。

但是,在这个指令中也有额外的行为,如果href与当前位置相同,则应该将路由器链接活动类添加到锚点。

问题是这不太好。

代码语言:javascript
复制
get isRouteActive(): {
    return this._router.isRouteActive(this._navigationInstruction);
}

在_router.IsRouteractive内部有当前指令字段,该字段应该包含当前路由组件。该组件将与__navigationInstruction进行比较。实际上,在路由组件相等的情况下,链接是当前的。

问题是当前指令为null。它被指定为:

代码语言:javascript
复制
Router.prototype.commit = function(...)

此函数在指令处理后被调用。

所以这不应该有好的效果。

EN

回答 4

Stack Overflow用户

发布于 2015-12-23 16:34:00

我一直在做这样的事情:

代码语言:javascript
复制
<li [class.active]="somethingThatReturnsTrueOrFalse()"><a [routerLink]="['/About']" class="link">About</a></li>

这似乎适合我的主菜单:http://www.syntaxsuccess.com/angular-2-samples/#/demo/spreadsheet

票数 1
EN

Stack Overflow用户

发布于 2016-01-01 23:18:28

不确定这是否有助于解决可能出现故障的路由器行为问题,但是这个柱塞有一个很好的解决方案,可以用路由器更改标记其他元素(例如父li)。柱塞包括一个指令: LinkActiveDirective.ts (用法可以在Users.ts中看到)

该指令挂在linkActive上,并侦听路由器的更改。当路由器链路处于活动状态时,类就会在元素上激活。

用法如下:

代码语言:javascript
复制
<li linkActive>
  <a [routerLink]="['./Home']">Home</a>
</li>

希望能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2016-01-11 18:31:40

我有个指令你可以用。请参见拉请求https://github.com/angular/angular/pull/6407/files

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34439711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档