@Mr_Lumus

Почему сервис Angular не видит все сегменты URL?

Есть сервис, который работает (должен был работать....) с URL. При его подключении ив компонент - запускается отслеживание URL, и логирование в консоль. Так вот. Сегменты URL-а не возвращаются из сервиса, а вот в компоненте с этим все ок. Можно ли это как-то обойти ? Не хочу использовать `router.event`, он не подходит для моей задачи.

Пример кода сервиса:
export class UrlService{

  private BASE_URL = "http://192.168.3.47:9080"
  private queryParams: IQueryParam[] = [];
  private urlConfig: IUrlSegment[] = [];
  private urlString: string = this.BASE_URL;
  private urlWithQP: string = this.urlString;

  constructor(@Inject (ActivatedRoute) private activatedRoute: ActivatedRoute) {
  }

  ObserveUrl() {
    this.activatedRoute.url.subscribe(url => {
      this.urlConfig = url;
      console.log(`[URL CONFIG]`)
      console.log(url)
      this._setUrlByConfig(this._getQueryString());
      console.log(`[URL] ${this.urlString}`);
    });
    this.activatedRoute.queryParams.subscribe(params => {
      this.queryParams = [];

      if (Object.keys(params).length !== 0) {
        for (let key in params) {
          this.queryParams.push({
            name: key,
            value: params[key],
          });
        }
      }

      console.log(`[URL QP] ${this.urlWithQP}`);
    });
  }


А вот вывод в консоль:
64238de8153ec380605286.jpeg

Тем временем мой URL:
64238e097407c416511626.jpeg
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@Mr_Lumus Автор вопроса
Решил проблему пробросив в обозреватель инстанс ActivatedRoute из компонента и вызвав его в сервисе

ngOnInit() {
    this.urlService.ObserveUrl(this.activatedRoute);
    console.log(this.urlService.getClearUrl());
    console.log(this.urlService.getUrlWithQP());
}


Все отработало как часы, может поможет кому
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы