如何将一组具有相同查询参数的值传递给路由器?

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