如何在angularjs导航期间保持查询字符串?

时间:2015-09-22 08:59:16

标签: javascript angularjs

我想在导航时保留查询字符串:

http://localhost/#/test/page1?param=123

我的导航链接如下:

<a ng-href="test/page2>

当我点击该链接时,该网址将更改为:http://localhost/#/test/page2并删除查询字符串。

问题:如何保留查询?

2 个答案:

答案 0 :(得分:1)

如果您乐意不使用ng-href,可以非常干净地使用$ location.path(),如下所示:

在您的控制器中声明一个最终执行此操作的函数:

$scope.sendToNewPlace = function (path) {
    $location.path(path);
}

(不要忘记将$ location注入你的控制器(或者你最终把$ location.path()调用放在哪里)。

然后将您的链接更改为使用ng-click,如下所示:

<a href="#" ng-click="sendToNewPlace('test/page2');">page2, passing querystring</a>

答案 1 :(得分:0)

$scope.$on('$locationChangeStart', function(event, next, current) {
//next: holds the new Url
//current: holds the old Url
});

更多参考资料: https://docs.angularjs.org/api/ng/service/ $位置