从Angular路线访问参数

时间:2015-08-07 18:03:11

标签: angularjs angularjs-routing

我正在开发我的第一个生产Angular应用程序。我知道我可以设置路由,以便我可以获取参数并使用它来从我的数据库中获取数据。

例如,在我的应用程序中,我们有一个案例列表。每个案例都有一个案例编号。然后我有一个部分显示与案例相关的文件。这是我的路线:

JBenchApp.config(['$routeProvider', '$locationProvider', 
  function($routeProvider, $locationProvider) {
      $routeProvider.
        when('/dashboard', {
            templateUrl: 'partials/dashboard.html',
            controller: 'JBenchCtrl'
        }).
        when('/calendar', {
            templateUrl: 'partials/calendar.html',
            controller: 'JBenchCtrl'
        }).
        when('/', {
            templateUrl: 'partials/calendar.html',
            controller: 'JBenchCtrl'
        }).
        when('/case/:number', {
            templateUrl: 'partials/case.html',
            controller: 'CaseDetailCtrl'
        }).
        otherwise({
            redirectTo: '/'
        });

      $locationProvider.html5Mode(true);
  }]);

如果我想获取案例#11151的文件,我会制作一个URL" / case / 11151"我如何抓住11151并将其传递给可以获取数据的函数?举个例子,我相信我需要一个控制器:

JBenchApp.controller('CaseDetailCtrl', ['$scope',
  function ($scope) {
      // Call to a service that returns JSON
      $scope.casedocs = data;
  }]);

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您需要在控制器中注入routeParams。将控制器更新为以下

JBenchApp.controller('CaseDetailCtrl', ['$scope', '$routeParams',
  function ($scope, $routeParams) {
      console.log($routeParams.number); // retrieve route parameters
      // Call to a service that returns JSON
      $scope.casedocs = data;
  }]);