3

快速提问,是否可以在下面的阶段从 $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 时,我得到 '(anonymous function) angular.js:78' 与我使用 $params 时相同。例如。

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

1 回答 1

6

这一切都在文档中:

请注意,ngRoute.$routeParams在这些解析函数中仍将引用先前的路由。使用$route.current.params.


例如:

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

另请参阅这个简短的演示

于 2014-07-03T14:40:47.887 回答