我没有要求使用ngView
,但我需要知道控制器中的路由参数。所以,我试着在我的控制器中注入$routeParams
。然而,它在我的HTML中声明ngView
不起作用。那么,为什么配置$routeProvider
需要在HTML中声明ngView
(我的要求实际上不需要)?
代码示例: 角度应用
var routeParamsApp = angular.module('routeParamsApp', ['ngRoute']);
配置文件
routeParamsApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {controller: 'routeParamsCntrl'}).
when('/a', {controller: 'routeParamsCntrl'}).
when('/a/:b', {controller: 'routeParamsCntrl'}).
when('a/:b/c/d/:e', {controller: 'routeParamsCntrl'}).
otherwise({redirectTo: '/'});
}]);
HTML
<body ng-app="routeParamsApp" ng-controller="routeParamsCntrl">
<p>Current $routeParams is: {{routeParams}}</p>
</body>
控制器
routeParamsApp.controller('routeParamsCntrl', ['$scope', '$routeParams',
function($scope, $routeParams) {
$scope.routeParams = $routeParams;
}]
);
在我在HTML中声明一个虚拟<div ng-view></div>
之前,上面的代码不起作用。为什么?是否有任何解决方案可以在控制器中使用$routeParams
而不声明ngView
?
答案 0 :(得分:3)