Nano Hash - криптовалюты, майнинг, программирование

Добавить активный класс в подменю по щелчку в angular 4

Я создал вложенное меню в Angular 4. У меня проблема с активным классом. Вот мой код.

Мой код

Я могу добавить активный класс в основную ссылку, но что мне делать, чтобы добавить активный класс в подменю на основе щелчка. Пожалуйста помоги


  • Нажатие на второе меню и третье меню показывает подменю... тогда что вы хотите? 08.08.2018
  • При щелчке подменю выбранное подменю должно быть активным. что я должен сделать для этого 08.08.2018

Ответы:


1

Вы можете создать объект для хранения того, что выбрано для main ссылки и sub ссылки, а затем соответствующим образом применить класс.

Например, вы можете передать main в качестве аргумента, чтобы сообщить, что это основная ссылка, и соответственно проверить isActive для самой main.

(click)="select('main', n.name);" [ngClass]="{active: isActive('main', n.name)}"

Аналогично можно сделать и для ссылки sub.

Ваши функции могут быть следующими:

  select(type, item, $event) {
    this.selected[type] = (this.selected[type] === item ? null : item);
    $event ? $event.stopPropagation() : null;
  }
  isActive(type, item) {
    return this.selected[type] === item;
  }

Вы можете остановить распространение при выборе дополнительной ссылки, которая, я полагаю, не является обязательной (пожалуйста, проверьте свой вариант использования).

Пожалуйста, проверьте код ниже: -

https://stackblitz.com/edit/angular-7b7cwd?file=src/app/app.component.html

08.08.2018
  • Большое спасибо @Ankit :) 08.08.2018
  • Рад, что это помогло. :) 08.08.2018
  • Есть одна проблема. Пожалуйста, проверьте это состояние. нажмите на одно подменю, чтобы открыть второе главное меню. 08.08.2018
  • Это потому, что оба подменю имеют то же значение, что и Sub Menu 1. Пожалуйста, попробуйте изменить значения для подменю. Я изменил это в примере для вас. Пожалуйста, проверьте сейчас. Вам нужно передать что-то еще, чтобы идентифицировать его легко и правильно. 08.08.2018
  • Привет, @Ankit, не могли бы вы помочь мне, мне не нужна ссылка на маршрутизатор, если в меню есть подменю, и при первой загрузке страницы одно меню должно быть активным. не могли бы вы помочь 08.08.2018
  • @vedankitakumbhar Вы можете использовать функцию router.navigate, чтобы решить, нужна ли вам навигация. Для получения дополнительной информации о том, как использовать, посетите angular.io/ guide/router#navigating-back-to-the-list-component. Вы также можете использовать *ngIf для рендеринга тега привязки или тега span. Чтобы выбрать одно меню при загрузке страницы, вы можете передать значение своему компоненту или установить его в функции ngOnInit. 08.08.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..