小编sou*_*ero的帖子

Angular 4 - Route查询参数导致路径匹配失败

在Angular 4中搜索关于各种类型的路由的多个线程/问题之后,我无法解决将queryParams传递给Angular 4路由的问题.

传递到网址时

http://localhost/search;x=y
Run Code Online (Sandbox Code Playgroud)

通过模板[queryParams] = {x:'y'}

<a [routerLink]="/search" [queryParams]="{x: 'y'}">Navigate</a>
Run Code Online (Sandbox Code Playgroud)

或在组件类中

this._router.navigate(['/search'], { queryParams: {x: 'y'} });
Run Code Online (Sandbox Code Playgroud)

结果是路由器抛出匹配错误:

Error: Cannot match any routes. URL Segment: 'search%3Fparam1%3Dtest1%26param2%3Dtest2'
Run Code Online (Sandbox Code Playgroud)

当将enableTracing设置为true时,我可以看到导航对可疑字符进行编码,这很可能是它无法匹配的原因.

我需要处理包含queryParams的URL并解析它们以进行api调用,因此必须在必需或可选的参数上使用查询参数路由.

有没有人有类似的问题,如果有的话,编码根源(ahem.)问题的原因是什么?

url-encoding query-parameters angular2-routing angular

11
推荐指数
2
解决办法
2万
查看次数