我的導航欄包含 3 個項目:2 個元素<li>和<a>一個下拉 btn 組。當遵循導航鏈接下拉選項之一時,我想突出顯示下拉切換按鈕。這是我的代碼:<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>我想根據下拉菜單項的 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 文件,請評論..
1 回答

慕少森
TA貢獻2019條經驗 獲得超9個贊
再會!
在您的情況下,問題是按鈕沒有路由器鏈接指令,它無法處理路由器事件并確定 - 它是當前路由還是否。解決方案是獲取所需路由器鏈路的引用并在另一個地方(您想要的地方)使用它。
檢查這個非?;镜睦觼砹私膺@個想法:
<li class="menu-item" [class.menu-item--active]="dashboardLinkRef.isActive">
<a routerLink="/dashboard" routerLinkActive #dashboardLinkRef="routerLinkActive">
Dashboard
</a>
</li>
<!-- Can be multiple refs to router links, that's not a problem ;) -->
<li class="menu-item" [class.menu-item--active]="loginLinkRef.isActive">
<a routerLink="/login" routerLinkActive #loginLinkRef="routerLinkActive">
Login
</a>
</li>
- 1 回答
- 0 關注
- 127 瀏覽
添加回答
舉報
0/150
提交
取消