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