Angularjs从routeProvider中检索param

时间:2014-07-03 14:11:25

标签: angularjs params route-provider

快速提问,是否有可能在下一阶段从$ routeProvider获得一个参数?

app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

$routeProvider
    .when('/', {
        templateUrl: 'views/home.html',
        controller: 'IndexController'
    })
    .when('/students/:id', {
        templateUrl: 'views/studentRecord.html',
        controller: 'StudentsController',
        resolve: {
            students: function(getStudents) {
                  return getStudents.getAllStudents();
                },
                movies: function(getStudents,$stateParams) {
                    return getStudents.getStudentbyId($stateParams.id);
                  }
              }
            });
$locationProvider.html5Mode(true);

}]);

所以我的'getStudentbyId(5)'理想情况下我想得到:id值字段。经过大量的谷歌搜索后我找不到办法。有什么想法吗?

干杯

编辑:在我的app.config中注入$ stateParams时,得到'(匿名函数)angular.js:78'与我使用$ params时相同...例如。

app.config(['$routeProvider', '$locationProvider', '$stateParams', function($routeProvider, $locationProvider, $stateParams) {

1 个答案:

答案 0 :(得分:6)

全部在 the docs

  

请注意,ngRoute.$routeParams仍会引用这些解析函数中的上一个路径。使用$route.current.params


例如:

resolve: {
    studentID: function ($route) {
        return $route.current.params.id;
    }
    ...
}

另请参阅 short demo