我注意到,当我将一个数组参数传递给$location.search()时,它的编码方式如下例所示
$location.path(‘/ somePath’).search(‘ids [] =’,[1,2,3]);
变
/ somePath DS [] = 1&安培; DS [] = 2及DS [] = 3
有没有办法避免网址编码?
请原谅迟到的回复,但我自己也遇到了类似的困境,并认为我会提供建议.
简而言之,如果您打算使用$location.search,则无法避免编码的URL.
如果你看一下Angular源,特别是location.js
,你会发现函数返回组合URL(即LocationHtml5Url)都依赖于另一个名为toKeyValue的函数调用,它将在设置时对所有键值对进行编码.
此外,在您提供的示例用例中,您不需要键内的等号.当使用两个参数调用$location.search时,它们被Angular视为键值对.
如果您需要在编码后使用位置网址,则可以随时拨打decodeURIComponent
.