Как передать параметры из urlA в urlB, не отображая их в url - PullRequest
1 голос
/ 29 апреля 2020

Мне нужно передать параметры из URLA или urlB без указания URL-адреса (поэтому я не могу использовать skiplocation=true).

в моих действиях (в URLA):

 this.router.navigate([URLB], {
                queryParams:
                {
                    name: "erika"

                }
            });

и когда я беру параметр, который я делаю:

 this.activatedRoute.queryParams.subscribe(params => {
      this.name = params['name'];

    });

Проблема в том, что он показывает мне URL таким образом URLB?name=erika, и я не хочу этого делать, но я хочу, чтобы он показал мне URLB, и я могу взять параметры. Кто-нибудь может мне помочь?

Ответы [ 3 ]

1 голос
/ 29 апреля 2020

Используйте это:

let data = {name: 'erika'}
this.router.navigateByUrl([URLB], data);

и это:

this.activatedRoute.data
  .subscribe(
    (data: Data) => {
      this.name = data['name'];
    }
  );
0 голосов
/ 29 апреля 2020

Для этого есть несколько способов.

1) Обмен данными через @ Ввод и @ Вывод

2) Обмен данными через сервис: https://angular.io/guide/component-interaction#parent -listens-for-child-event

3) Обмен данными через государственные библиотеки. Я рекомендую вам Ngxs

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

Вы можете использовать @Input для передачи данных от одного компонента к другому без необходимости отображения этих данных в URL

Дополнительная информация https://angular.io/guide/component-interaction

...