如何将一组具有相同查询参数的值传递给路由器?
How to pass an array of values of same query parameter to the router?
如 this bug fix 中所示,可以在 url 中定义多个同名查询参数并将它们序列化为一个数组:
http://localhost:4200?status=Deleted&status=Audio Issue
变为:
ngOnInit() {
this.activatedRoute.queryParams.subscribe((params: Params) => {
if (!params) {
return;
}
console.log(params); // see below
// {
// 'status': [
// 'Deleted',
// 'Audio Issue'
// ],
// }
然而,根据我的测试,情况并非如此:
let queryParams = {
'status': [
'Deleted',
'Audio Issue',
],
}
this.router.navigate([], { queryParams });
变为:
http://localhost:4200?status=Deleted,Audio Issue
当我希望它产生时:
http://localhost:4200?status=Deleted&status=Audio Issue
有什么办法吗?
如果您的答案是解析逗号分隔值,为什么路由器会在一个方向而不是另一个方向产生此功能?
编辑:
可能在 6 天前修复了 https://github.com/angular/angular/pull/15129
看来此功能已在 Angular 4 中修复,请参阅 https://github.com/angular/angular/pull/15129
如 this bug fix 中所示,可以在 url 中定义多个同名查询参数并将它们序列化为一个数组:
http://localhost:4200?status=Deleted&status=Audio Issue
变为:
ngOnInit() {
this.activatedRoute.queryParams.subscribe((params: Params) => {
if (!params) {
return;
}
console.log(params); // see below
// {
// 'status': [
// 'Deleted',
// 'Audio Issue'
// ],
// }
然而,根据我的测试,情况并非如此:
let queryParams = {
'status': [
'Deleted',
'Audio Issue',
],
}
this.router.navigate([], { queryParams });
变为:
http://localhost:4200?status=Deleted,Audio Issue
当我希望它产生时:
http://localhost:4200?status=Deleted&status=Audio Issue
有什么办法吗?
如果您的答案是解析逗号分隔值,为什么路由器会在一个方向而不是另一个方向产生此功能?
编辑:
可能在 6 天前修复了 https://github.com/angular/angular/pull/15129
看来此功能已在 Angular 4 中修复,请参阅 https://github.com/angular/angular/pull/15129