从 Angular 路由访问参数

Accessing parameter from Angular route

我正在开发我的第一个生产 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;
  }]);

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

您需要在控制器中注入路由参数。将您的控制器更新为以下

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;
  }]);