HTML-код:
<li class = "nav-item dropdown pe-3">
<a class = "nav-link nav-profile d-flex align-items-center pe-0" (click) = "toggleProfileMenu()">
<img src = "assets/img/profile-img.jpg" alt = "Profile" class = "rounded-circle">
<span class = "d-none d-md-block dropdown-toggle ps-2">{{ username }}</span>
</a>
<ul class = "dropdown-menu dropdown-menu-end dropdown-menu-arrow profile" *ngIf = "isProfileMenuOpen" (click) = "$event.stopPropagation()">
<li class = "dropdown-header">
<h6>{{username}}</h6>
</li>
<li>
<hr class = "dropdown-divider">
</li>
<li>
<a class = "dropdown-item d-flex align-items-center">
<i class = "bi bi-gear"></i>
<span>Account Settings</span>
</a>
</li>
<li>
<hr class = "dropdown-divider">
</li>
<li>
<a class = "dropdown-item d-flex align-items-center" (click) = "logout()">
<i class = "bi bi-box-arrow-right"></i>
<span>Sign Out</span>
</a>
</li>
</ul>
</li>
код ТС:
@Component({
changeDetection: ChangeDetectionStrategy.Default
})
isProfileMenuOpen = false;
toggleProfileMenu(): void {
this.isProfileMenuOpen = !this.isProfileMenuOpen;
}
Когда я нажимаю на эту стрелку/треугольник, ничего не происходит. (Ожидаемый результат: элементы выпадающего списка появляются, а при повторном нажатии они исчезают)
@YongShun да, я использую бутстрап, как именно тогда должно быть?
Работая с Bootstrap, вы можете работать с атрибутом data-bs-toggle = "dropdown"
, чтобы развернуть/свернуть раскрывающийся список без манипуляций со стороны Angular (метода).
<a class = "nav-link nav-profile d-flex align-items-center pe-0 " href = "#" role = "button" data-bs-toggle = "dropdown" aria-expanded = "false">
...
</a>
Убедитесь, что вы импортировали пакет Bootstrap Bundle или Bootstrap + Popper.JS, как описано в раскрывающемся списке Bootstrap 5 не работает в Angular 12.
ок, братан, спасибо, я попробую, сообщу тебе, если что-нибудь случится
поклон, это сработало, спасибо за помощь, я очень ценю это
Пожалуйста, рад видеть, что мой ответ помогает!
Похоже, вы используете раскрывающийся список Bootstrap? Если да, вам не нужно программно обновлять переменную
isProfileMenuOpen
, чтобы показать/скрыть раскрывающееся меню.