我无法弄清楚为什么我的这个“控制器没有注册”错误的角度1.6.4。
控制器:
var app = angular.module('app', ['ngRoute']);
app.controller("formCtrl", function($scope, $rootScope, $stateParams) {
$scope.id = $stateParams.id;
});
索引:
<html>
<head>
<script src="js/angular.js"></script>
<script src="js/angular-route.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="js/formCtrl.js" type="text/javascript"></script>
<script src="js/app.js" type="text/javascript"></script>
</head>
<body ng-app="app">
<div ng-view>
</div>
</body>
</html>
应用
app = angular.module('app', ['ngRoute']);
app.config(function($routeProvider) {
$routeProvider
.when("/:id", {
templateUrl: './partials/main.html',
controller: 'formCtrl'
});
})
答案 0 :(得分:2)
这是因为您实际上正在为控制器创建一个新模块,而不是重用现有的应用模块。
要解决此问题,您只需将控制器代码更改为:
angular.module('app').controller("formCtrl", function($scope, $rootScope, $stateParams) {
$scope.id = $stateParams.id;
});
当您打算创建新模块时,只需指定angular.module()
的第二个参数。如果要为应用程序注册控制器,组件,服务等,则只应用第一个参数:angular.module('app')
。
注意,确保在app js文件之后加载了控制器js文件。
答案 1 :(得分:0)
试试这个:
var app = angular.module('app', ['ngRoute']);
app.controller("formCtrl",["$scope", "$rootScope", "$stateParams", function($scope, $rootScope, $stateParams) {
$scope.id = $stateParams.id;
}]);