Angular – почему мой раскрывающийся список не работает

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;
  }

Когда я нажимаю на эту стрелку/треугольник, ничего не происходит. (Ожидаемый результат: элементы выпадающего списка появляются, а при повторном нажатии они исчезают)

Похоже, вы используете раскрывающийся список Bootstrap? Если да, вам не нужно программно обновлять переменную isProfileMenuOpen, чтобы показать/скрыть раскрывающееся меню.

Yong Shun 25.07.2024 02:13

@YongShun да, я использую бутстрап, как именно тогда должно быть?

Mohamed Seif Ben Salah 25.07.2024 02:45
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
2
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Работая с 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.

Демо @ StackBlitz

ок, братан, спасибо, я попробую, сообщу тебе, если что-нибудь случится

Mohamed Seif Ben Salah 25.07.2024 03:15

поклон, это сработало, спасибо за помощь, я очень ценю это

Mohamed Seif Ben Salah 25.07.2024 03:24

Пожалуйста, рад видеть, что мой ответ помогает!

Yong Shun 25.07.2024 03:42

Другие вопросы по теме