2015-08-07 3 views
1

Я работаю над своим первым продуктом с угловым применением. Я знаю, что я могу настроить маршрутизацию, чтобы я мог захватить параметр и использовать его, например, для получения данных из моей базы данных.Доступ к параметру из Углового маршрута

Например, в моем приложении у нас есть список случаев. Каждый случай имеет номер дела. Затем у меня есть частичный, который отображает документы, относящиеся к делу. Вот моя маршрутизация:

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

Если я хочу, чтобы получить документы для Case # 11151 и я ремесло URL «/ случай/11151» как я могу захватить 11151 и передать его в функцию, которая может получить данные? В качестве примера я считаю, что мне нужен контроллер:

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

Может кто-нибудь указать мне в правильном направлении?

ответ

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

Спасибо за простое объяснение. Отлично работает –

Смежные вопросы