如何在带有Angular的路由中使用数组?

时间:2019-01-22 13:24:04

标签: angular

我认为将getAllparamMap一起使用可以帮助从URL获取数组,但显然没有帮助。

我用错了吗?

下面是一个示例:https://stackblitz.com/edit/angular-bjrjz9

我以此导航

this.router.navigate(['two', {
  id: [1, 2, 3, 4, 5]
}]);

然后我得到值

this.route.paramMap.subscribe(params => {
  const ids = params.getAll('id');
  console.log('ids', ids);
});

console.log说['1,2,3,4,5'],但我希望它是[1,2,3,4,5]甚至是['1', '2', '3', '4', '5']

我只是想将数组传递到路由,然后将数组返回目的地。
当然,我可以拆分字符串,但是在这种情况下使用getAll有什么意义呢? :)

2 个答案:

答案 0 :(得分:2)

如果使用routerLink,则可以使用。

但是,它目前不适用于您的方法。

Angular git中的一个错误已经在https://github.com/angular/angular/issues/19179上打开了。您可以在此处跟踪此问题。

答案 1 :(得分:1)

getAll()方法将重复的参数作为数组返回。

示例:

http://www.example.com/?query=a&query=b&query=c

该值为:

console.log(params.getAll('query')); // prints ["a","b","c"]

HTTP规范中的所有查询参数都是字符串。