Как добавить класс в зависимости от маршрута |Угловой 6 - PullRequest
0 голосов
/ 27 ноября 2018

У меня возникают проблемы с получением текущего пути URL, когда пользователь меняет маршрут, щелкая ссылку в модуле navbar.Как получить текущий путь URL каждый раз, когда пользователь нажимает на ссылки маршрута в модуле навигации.Мне нужно, чтобы получить его по сценарию navigation.ts.Вот что у меня сейчас: TS:

constructor(private router: Router, private route: ActivatedRoute) {
  this.router.events.subscribe(res => {
    if (this.router.url == "/buy") {
      this.navExpand = true;
    }

    else {
      this.navExpand = false;
    }
  });
}

Работает, но каждый раз, когда зацикливается 8 раз.Я работаю на угловых 6

1 Ответ

0 голосов
/ 27 ноября 2018

потому что маршрутизатор подвержен нескольким событиям.

Попробуйте выполнить фильтрацию по последнему событию, NavigationEnd:

  this.router.events.pipe(
    filter(event => event instanceof NavigationEnd)
  ).subscribe(res => {
    if (this.router.url == "/buy") {
      this.navExpand = true;
    }

    else {
      this.navExpand = false;
    }
  });

Импорт:

import { filter} from 'rxjs/operators';
import { NavigationEnd } from '@angular/router';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...