【问题标题】:Angularjs Retrieving param from routeProviderAngularjs从routeProvider检索参数
【发布时间】:2014-08-24 17:11:49
【问题描述】:

快速提问,是否可以在以下阶段从 $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) {

【问题讨论】:

  • 当时您是否尝试仅注入和使用 $stateParams?
  • 我确实把 $stateParams 放进去了,编辑它的人做了..我刚刚看到..现在就试一试
  • @ipaul 在我的 app.config 中注入 $stateParams 时,我得到 '(anonymous function) angular.js:78' 与我使用 $params 时相同
  • 我正要说“我没有看到 $stateParams 被注入”,但这是有道理的。此时您正在配置路由。我认为您最好的选择是在控制器中查找电影数据,其中可以注入 $stateParams。我知道这不是一个真正的答案,但依赖注入看起来并不适用于“解决”。
  • 人!有ngRouteuiRouter。仅仅因为您在应用中使用模块并不意味着每个人都这样做(或应该)。

标签: angularjs params route-provider


【解决方案1】:

一切尽在the docs

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


例如:

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

请看,还有这个short demo

【讨论】:

  • 我添加了 $route.current.params 但是我得到了一个几乎没有描述的未捕获错误 - 也许我应该添加它。你能提供一个工作的例子吗?
  • 我刚试过,但现在看不到我的网页。控制台中也没有错误
  • 是的,它应该工作。一定是其他原因导致了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
相关资源
最近更新 更多