我的导航栏包含 3 个项目:2 次<li>
带有一个<a>
元素和一个下拉 btn-group。当遵循导航链接下拉选项之一时,我想突出显示下拉切换按钮。这是我的代码:
<ul class="navbar-nav mx-auto h-100 navigation-items">
<li class="nav-item active">
<a
[routerLink]="['/app', 'tab1']"
routerLinkActive="active-link"
class="nav-link h-100"
>Tab1</a
>
</li>
<div class="btn-group dropdown" dropdown>
<button
class="btn btn-link nav-link h-100 dropdown-toggle"
id="button-basic"
dropdownToggle
type="button"
--> routerLinkActive="active-link" <--- Doesn't work
>
Dropdown
<fa-icon [icon]="faChevronDown" size="xs"></fa-icon>
</button>
<ul
id="dropdown-basic"
*dropdownMenu
class="dropdown-menu main-nav"
role="menu"
aria-labelledby="button-basic"
>
<li role="menuitem">
<a
class="dropdown-item"
[routerLink]="['/app', 'tab2', 'link1']"
routerLinkActive="active-link"
>Link1
</a>
</li>
<li role="menuitem">
<a
class="dropdown-item"
data-letter=""
[routerLink]="['/app', 'tab2', 'link2']"
routerLinkActive="active-link"
>Link2
</a>
</li>
<li role="menuitem">
<a
class="dropdown-item"
[routerLink]="['/app', 'tab2', 'link3']"
routerLinkActive="active-link"
>Link3
</a>
</li>
</ul>
</div>
<li class="nav-item active" fxLayoutAlign="center center">
<a
[routerLink]="['/app', 'tab3']"
title="Inplannen"
routerLinkActive="active-link"
class="nav-link h-100"
>Tab3</a
>
</li>
</ul>
我想根据下拉菜单项的 routerLinks 之一是否处于活动状态来更改按钮的样式。但是,由于按钮本身不包含任何路由信息,并且菜单没有自己的父页面,因此我在互联网上找到的解决方案对我来说还不起作用。
- 如您所见,简单地将 routerLinkActive="active-link" 添加到按钮元素是行不通的。
- 添加
routerLinkActive="active-link" [routerLinkActiveOptions]="{exact: true}"
到父 btn-group 有效,但不能帮助我动态设置按钮本身的样式。(来源:https ://angular.io/api/router/RouterLinkActive ) - 目前,RouterLinkActive 样式适用于
<li> nav-item
元素和下拉项。我只想将它添加到<button>
元素中。
有谁知道解决方法?或者我应该接受不能使用RouterLinkActive直接设置按钮的样式吗?
如果您需要进一步说明或我的 .scss 文件,请发表评论。