亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下拉切換的樣式按鈕取決于 nav-link 的 RouterLinkActive

下拉切換的樣式按鈕取決于 nav-link 的 RouterLinkActive

Helenr 2023-10-24 17:17:38
我的導航欄包含 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>


查看完整回答
反對 回復 2023-10-24
  • 1 回答
  • 0 關注
  • 127 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號