我的网址中有一个包含多个参数的页面。我正在尝试编写一个函数来单击元素。我希望它检查参数pthree是否存在。如果是,请将其更新为新值(不重复)。如果它不存在,请将其附加到我当前的URL并重新加载页面。
我在尝试更新当前网址时遇到了问题。
我当前的网址结构:
我的空间推迟实施= 99.9999999&安培; ptwo = -44.4444444&安培; pthree = 1&安培; pfour = 1&安培; pfive = 1
Controller snippet:
$scope.test = function (){
$location.search('pthree', 0);
}
这部分有效。它更新了我的URL,但它将#?pthree = 0添加到我当前URL的末尾。
我想要的结果是:
我的空间推迟实施= 99.9999999&安培; ptwo = -44.4444444&安培; pthree = 0&安培; pfour = 1&安培; pfive = 1
有什么想法,我能做些什么才能得到我想要的结果?提前谢谢!
答案 0 :(得分:0)
这对我有用。我发现我需要设置我的应用程序的HTML5模式。在此处阅读有关HTML5模式的更多信息:https://docs.angularjs.org/guide/ $ location。
在此之后,我在调用$ location.search({pThree:'0'}时遇到了另一个问题。它开始编写我的所有其他参数。例如,URL结构更改为?pThree = 0。为了解决这个问题,我必须阅读所有参数,更新pThree,然后全部写回来。
我希望这有助于其他人。
答案 1 :(得分:0)
只需执行以下操作即可轻松完成此操作:
// existing url with params
// http://myurl.com/path/view/etc?param1=abc¶m2=def
// add your new param to the search() object
$location.search().param3 = 'ghi';
// set your search again with the updated search object
$location.search( $location.search() );
这将更新您的网址:
// http://myurl.com/path/view/etc?param1=abc¶m2=def¶m3=ghi