Angular 2 pass array to router queryString

2019-05-18 18:43发布

I would like pass array ids: [1, 2, 3] to router query string like this: http://...some-url?ids=1&ids=2&ids=3, but when I try to use

const queryParams = { ids: [1, 2, 3] };
this.router.navigate(['/some-route'], { queryParams });

the result is http://...some-url/some-route?ids=1%2C2%2C3

Is there way to add query params with same key?

2条回答
混吃等死
2楼-- · 2019-05-18 19:16

Looks like there is a bug in the router. Please, check this answer: https://stackoverflow.com/a/42505212/7634393

查看更多
成全新的幸福
3楼-- · 2019-05-18 19:20

router.navigate is waiting for a named 'queryParams' value.

So, this should work.

const queryParams = { ids: [1, 2, 3] };
this.router.navigate(['/some-route'], { queryParams: queryParams });

Or,

const extras = { queryParams: { ids: [1, 2, 3] }};
this.router.navigate(['/some-route'], extras);
查看更多
登录 后发表回答