Я создал вложенное меню в Angular 4. У меня проблема с активным классом. Вот мой код.
Я могу добавить активный класс в основную ссылку, но что мне делать, чтобы добавить активный класс в подменю на основе щелчка. Пожалуйста помоги
Я создал вложенное меню в Angular 4. У меня проблема с активным классом. Вот мой код.
Я могу добавить активный класс в основную ссылку, но что мне делать, чтобы добавить активный класс в подменю на основе щелчка. Пожалуйста помоги
Вы можете создать объект для хранения того, что выбрано для 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
Sub Menu 1
. Пожалуйста, попробуйте изменить значения для подменю. Я изменил это в примере для вас. Пожалуйста, проверьте сейчас. Вам нужно передать что-то еще, чтобы идентифицировать его легко и правильно. 08.08.2018router.navigate
, чтобы решить, нужна ли вам навигация. Для получения дополнительной информации о том, как использовать, посетите angular.io/ guide/router#navigating-back-to-the-list-component. Вы также можете использовать*ngIf
для рендеринга тега привязки или тега span. Чтобы выбрать одно меню при загрузке страницы, вы можете передать значение своему компоненту или установить его в функцииngOnInit
. 08.08.2018