0

晚上好,

我想知道使用 [routerLink] 指令传递复杂对象的最佳方法,以及如何阅读它。

IE:

complexObject = {
  x : 'ok',
  y: { 
        a: 2,
       b: 'test'
      },
}

<a [routerLink]="['/example/example-test', complexObject ]">

this.activatedRoute.paramMap.subscribe(complexObject => {
complexObject.get('x') // ok
complexObject.get('y') // The nested object 'y' is a string like [object object]
 }

提前致谢

4

2 回答 2

2

晚上好,在 routerLink 指令中传递嵌套对象的一种方法是使用 JSON.stringify()。

ngOnInit() {
 this.obj = JSON.stringify(this.complexObject);
}

使用 JSON.stringify() 方法转换复杂对象,并在 RouterLink 指令中传递对象。

<a [routerLink]="['/categories', { complexObject: obj} ]">CLICK</a>

在这里,我们将字符串化对象传递给 routerLink 指令。

this.activatedRoute.paramMap.subscribe(params => {
  const complexObject = JSON.parse(params.get('complexObject'));
});

使用 JSON.parse() 方法提取路由中传递的对象。

于 2020-03-11T11:51:36.387 回答
1

早上好,

这是我能找到的解决方案:

<a [routerLink]="['/example/example-test', { complexObject: complexObject} ]">

this.route.paramMap.subscribe(params => {
            const complexObject = JSON.parse(params.get('complexObject'))
        })

问候

于 2020-03-11T07:43:31.637 回答