AngularJS - 如何使用$ location更新URL查询参数?

时间:2014-06-26 22:28:27

标签: angularjs

我需要在我的一个服务中添加,更新和删除URL中的查询字符串参数。麻烦的是URL似乎没有更新。我正在尝试以下方法:

var updateUrlParams = function (deepLinkEvent) {
  if (deepLinkEvent.title !== 'bookmarkTitle') {
    return;
  }
  var params = $location.search();
  if (deepLinkEvent.name === deepLinkEvents.removeFragment) {
    if (params[deepLinkEvent.fragmentKey]) {
      delete $location.$$search[deepLinkEvent.fragmentKey];
      $location.$$compose();
    }
  }
  if (deepLinkEvent.name === deepLinkEvents.setFragment) {
    $location.search(deepLinkEvent.fragmentKey, deepLinkEvent.fragmentValue);
    $location.$$compose();
  }

};

以上不起作用。当我尝试使用:

删除参数键/值时,不会更新URL
 delete $location.$$search[deepLinkEvent.fragmentKey];
 $location.$$compose();

参数不会更新或添加:

 $location.search(deepLinkEvent.fragmentKey, deepLinkEvent.fragmentValue);
 $location.$$compose();

有人可以告诉我在网址中添加/更新和删除查询参数的正确方法吗?

谢谢!

更新

这也无效

//remove param
    $location(deepLinkEvent.fragmentKey, null);

1 个答案:

答案 0 :(得分:0)

而不是$location,而是使用$window代替:

$window.location.href = "url"

我自己从未与$location有任何运气,但$window非常简单。