How to set Bootstrap navbar “active” class in Angular 2?

后端 未结 11 658
被撕碎了的回忆
被撕碎了的回忆 2020-12-07 18:36

How can I set Bootstrap navbar \"active\" class in Angular 2? I only found Angular 1 way.

When I go to About page, add class=\"active\"

11条回答
  •  独厮守ぢ
    2020-12-07 18:46

    import { Directive, HostListener, ElementRef, HostBinding, Renderer2 } from '@angular/core';
    
    @Directive({
      selector: '[appNavDropdown]'
    })
    export class NavDropdownDirective {
      isOpen:boolean =false;
      counter:number = 0;
      constructor(private el: ElementRef, private render: Renderer2) { }
    
      @HostBinding('class.open') get opened() {
        return this.isOpen;
      }
    
      @HostListener('click') onmouseClick()
      {
        this.counter++
        console.log();
        if(this.counter % 2 == 1)//odd
        {
          let part = this.render.parentNode(this.el.nativeElement);
          this.render.addClass(part,'open');
          this.isOpen = true;
        }else{
          let part = this.render.parentNode(this.el.nativeElement);
          this.render.removeClass(part,'open');
          this.isOpen = false;
        }
      }
      // @HostListener('mouseleave') onmouseLeave()
      // {
      //   let part = this.render.parentNode(this.el.nativeElement);
      //   this.render.removeClass(part,'open');
      //   this.isOpen = false;
      // }
    
      toggleClose() {
        // let part = this.render.parentNode(this.el.nativeElement)
        //this.menuclick = false;
    
      }
      toggle() {
        this.el.nativeElement.classList.toggle('open');
      }
    }
    
    /**
    * Allows the dropdown to be toggled via click.
    */
    @Directive({
      selector: '[appNavDropdownToggle]'
    })
    export class NavDropdownToggleDirective {
      constructor(private dropdown: NavDropdownDirective) { }
    
      @HostListener('click', ['$event'])
      toggleOpen($event: any) {
        console.log($event)
        $event.preventDefault();
      //  this.dropdown.toggleClose()
       this.dropdown.toggle();
      }
    }
    
    export const NAV_DROPDOWN_DIRECTIVES = [NavDropdownDirective, NavDropdownToggleDirective];
    

提交回复
热议问题