3

目前,当我将参数传递给$state.go包含 a的参数时,~它会在创建 url 时重复。

例子:

我搜索~abc. 然后传给$state.go('.', {myParam: "~abc"}). 然后在 url 里面我有https://localhost/somePath?myParam=~~abc

根据 RFC3986,'~' 必须以 HTML 格式百分比编码为 "%7E"。如果我之前编码,那么我仍然有同样的问题。因此,我假设必须在UI 路由器内部$stateProvider或通过自定义内部路由器来处理该值。$urlmatcherfactoryprovider

4

2 回答 2

0

使用 AngularJS 中的新httpParamSerializer,您可以通过编写自己的 paramSerializer 并设置 $httpProvider.defaults.paramSerializer 来实现。

于 2019-12-19T23:08:11.603 回答
0

我能够通过将类型传递any给我的状态的url queryParam 来修复它,因为它不是由 UrlMatcherFactory 通过更新/state?:paramto编码的,因为这是to/state?{param:any}的预期行为。更多细节可以在这里找到:https ://github.com/angular-ui/ui-router/issues/3790~~~

于 2020-01-02T22:54:46.020 回答