我正在开发我的第一个生产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;
}]);
有人能指出我正确的方向吗?
答案 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;
}]);