在Angularjs应用中,我有一个类似的网址 http://url.com/my_app/#/store/items。 现在,我想追加查询字符串,例如 http://url.com/my_app/#/store/items?page=2。
http://url.com/my_app/#/store/items
http://url.com/my_app/#/store/items?page=2
但在url中,javascript编码了"?" to "%3F"我不想要的。它应该保持为“?” 仅在URL中作为angularjs $ location.search()不会为“%3F”返回任何内容。
"?" to "%3F"
怎么做?
您的问题中没有足够的细节,因此我假设您在非HTML5模式下使用AngularJS路由-至少是$ location服务。如果是这样,则该#字符后的部分从单页应用程序的角度表示您的URL(有关AngularJS的更多信息,请参见此处)。
#
如果上述假设是正确的,则意味着 您不应尝试“手动”添加或操作问号 。相反,您应该更改的search部分$location以处理查询字符串(后面的部分?),问号将根据需要添加/删除到最终网址中。
search
$location
?
您可以写:
$location.path('/store/items').search('page', 2)
如您的问题所述,这假设您正在从JavaScript处理URL。