如何将参数从 urlA 传递到 urlB 而不在 url 中显示它们

How pass parameters from urlA to urlB without show them in the url

我需要从 URLA o urlB 传递参数,而 urlB 必须显示(所以我不能使用 skiplocation=true)。

在我的 ts 中(在 URLA 中):

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

                }
            });

当我使用参数时:

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

    });

问题是它以这种方式向我显示 url URLB?name=erika 我不想这样做,但我希望它向我显示 URLB 我可以取参数。谁能帮帮我?

您可以使用@Input 将数据从一个组件传递到另一个组件,而无需在 url

中查看此数据

更多信息https://angular.io/guide/component-interaction

使用这个:

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

还有这个:

this.activatedRoute.data
  .subscribe(
    (data: Data) => {
      this.name = data['name'];
    }
  );

您有多种方法可以实现。

1) 通过@Input and @Output

分享数据

2) 通过服务共享数据: https://angular.io/guide/component-interaction#parent-listens-for-child-event

3) 通过州立图书馆共享数据。我推荐你Ngxs