使用QueryString参数导航到AngularJS的SPA

时间:2013-01-25 00:27:00

标签: angularjs single-page-application angular-routing

我的SPA链接由绝对URL + Query-String参数构成,如下所示:

http://127.0.0.1/Pepole/Index?personId=[some_ID]

我的路线配置是:

tmc.config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/', { templateUrl: '/People/Person', controller: peopleController });
        $routeProvider.otherwise({ redirectTo: '/' });
}]);

根据我的配置,当路由到/时,如何保留personId参数,以便它可以在相应的控制器(peopleController)中使用,我将能够访问它

2 个答案:

答案 0 :(得分:0)

http://docs.angularjs.org/api/ng.$location#search

  

搜索(search,paramValue)

     

此方法是getter / setter。

     

在没有任何参数的情况下调用时返回当前url的搜索部分(作为对象)。

     

使用参数调用时更改搜索部分并返回$location

     

参数
  search(optional) - {string|object<string,string>=} - 新的搜索参数 - 字符串或哈希对象
  paramValue(optional) - {string=} - 如果search是字符串,则paramValue将仅覆盖单个搜索参数。如果值为null,则参数将被删除   返回
  {string} – search

function SomeCtrl($scope, $location) {
    $scope.personId = $location.search().personId;
}

答案 1 :(得分:-1)

在您的控制器中注入$ routeParams,然后只需调用$ routeParams.yourQueryParameter。

例如:

function SomeCtrl($scope, $routeParams) {
    $scope.personId = $routeParams.personId;
}