我认为将getAll
与paramMap
一起使用可以帮助从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
有什么意义呢? :)
答案 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规范中的所有查询参数都是字符串。