sidenav-drawer-item.component.ts 862B

12345678910111213141516171819202122232425262728293031
  1. import { Component, OnInit, Input, ViewChild } from '@angular/core';
  2. import { SidenavService } from '../sidenav.service';
  3. import { startWith, map } from "rxjs/operators";
  4. @Component({
  5. selector: 'sidenav-drawer-item',
  6. templateUrl: './sidenav-drawer-item.component.html',
  7. styleUrls: ['./sidenav-drawer-item.component.css']
  8. })
  9. export class SidenavDrawerItemComponent implements OnInit {
  10. @Input('route') route;
  11. @Input('itemTitle') title;
  12. @Input('check') check?;
  13. @ViewChild('button', { static: true }) element;
  14. constructor(
  15. public _menu: SidenavService
  16. ){ }
  17. ngOnInit(){
  18. if(this.check)
  19. this._menu.currentRouteChange.pipe(
  20. startWith(this._menu.currentRoute),
  21. map(url => url)
  22. ).subscribe((url) => {
  23. const _regex = new RegExp(this.check)
  24. if(_regex.exec(url)) this._menu.setSelectedItem(this.element.nativeElement)
  25. })
  26. }
  27. }