Подписаться на изменение значений в URL angular - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть URL-адрес, как это

www.test.com?state=da#value=1&test=2

Когда я хочу подписаться на изменения в URL-адресе, я пытался вот так

this.route.params.subscribe(() => {
      this.urlParams = this.route.snapshot.queryParamMap.get('state');
      this.urlFragment = this.route.snapshot.fragment;
      if (!this.urlParams) {
        this.router.navigate([`/error/401`]);
      }
});

Это нормально, потому что я могу проверить, если что-то изменено в состояние параметры и значение изменено, но если что-то изменилось в значение как значение = 2 фрагмент URL не изменился ??

Я знаю, что могу сделать как

this.route.fragment.subscribe();

Таким образом, у меня есть две подписки, я хочу подписаться на любые изменения в URL? Есть ли способ сделать это?

1 Ответ

0 голосов
/ 15 апреля 2020

Вы можете использовать объединитьПоследние из rx js для своих подписок, что-то вроде этого:

import { combineLatest } from 'rxjs';
import { map } from 'rxjs/operators';
...
combineLatest(this.route.params, this.route.fragment).pipe(
  map(([params, fragment]) => console.log(params + '' + fragment) )
).subscribe()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...