Угловой 5 удалить класс от братьев и сестер

Я пытаюсь создать навигационную панель с несколькими гиперссылками в угловых. Я хочу добавить класс "активный" при нажатии / наведении любой из гиперссылок и удалить "активный" класс из его родных элементов. Я пытаюсь сделать это, создав пользовательскую директиву.

Это то, чего я достиг.

import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';

@Directive({
   selector: '[AppHighlightActiveMenu]'
})
export class HighlightMenuDirective {

constructor(private element: ElementRef, private renderer: Renderer2) { }

@HostListener('mouseenter') onMouseEnter() {
   this.activate();
}

@HostListener('mouseleave') onMouseLeave() {

}

private activate() {
  this.renderer.addClass(this.element.nativeElement, 'active'); 
}

private deactivate(element: ElementRef) {
  console.log("Element: ", element);
}
}

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

Заранее спасибо.

1 ответ

Вы пробовали removeClass?

 removeClass(className: string, element: any) {
   this.renderer.removeClass(element, className);
}

Но для navbar, почему вы не используете <router-outlet> с routerLinkActive="active" для ваших ссылок, где это встроенная директива по умолчанию для этого использования в Angular.

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