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

时间:2017-03-21 13:54:43

标签: angular angular-routing

this bug fix所示,可以在网址中定义多个同名的查询参数,并将它们序列化为数组:

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

1 个答案:

答案 0 :(得分:1)

看来此功能已在Angular 4中修复,请参阅https://github.com/angular/angular/pull/15129