1

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

在我的 ts 中(在 URLA 中):

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

                }
            });

当我接受参数时,我会这样做:

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

    });

问题是它以这种方式向我显示 urlURLB?name=erika而我不想这样做,但我希望它向我显示URLB并且我可以接受参数。任何人都可以帮助我吗?

4

3 回答 3

1

用这个:

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

和这个:

this.activatedRoute.data
  .subscribe(
    (data: Data) => {
      this.name = data['name'];
    }
  );
于 2020-04-29T14:41:07.267 回答
0

您有多种方法可以实现这一目标。

1) 通过@Input@Output共享数据

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

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

于 2020-04-29T14:42:20.127 回答
-1

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

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

于 2020-04-29T14:36:31.887 回答