看着所有其他答案,就像我正在做的那样。
我的'app.js':
angular.module('app', [
'imageCtrlController',
'adminCreateController',
'ui.bootstrap',
'ngRoute'
]);
我的另一个带有配置和两个控制器的.js文件:
angular.module("app").config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.hashPrefix('');
$routeProvider
.when('/', {
template: 'One moment please.'
})
.when('/imageCtrl', {
templateUrl: '/admin/imagecontrol',
controller: 'imageCtrlController'
})
}]);
angular.module("app").controller('adminCreateController', function AdminCreateController($scope, $http) {
$scope.admin = {};
console.log("hello");
$scope.createNewAdmin = function () {
var admin = $.param($scope.admin);
var config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
}
}
$http.post('/admin/CreateAdmin', admin, config)
.then(
function (response) {
console.log(response);
});
}
});
angular.module("app").controller('imageCtrlController', function ImageCtrlController($scope, $http) {
alert("yo");
});
在我的_Layout中:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
<script src="~/js/ui-bootstrap-tpls-2.5.0.min.js"></script>
<script src="~/js/AngularControllers/app.js"></script>
<script src="~/js/AngularControllers/adminController.js"></script>
我在我的_Layout主体中初始化ng-app,然后在我的View的div中。 'NG-控制器= “imageCtrlController”'
管理控制器工作正常,直到我将其移动到单独的文件中。
我得到的错误是:
错误:$ injector:modulerr模块错误
堆栈追踪:
Failed to instantiate module app due to:
Error: [$injector:modulerr] http://errors.angularjs.org/1.6.4/$injector/modulerr?p0=i...)
at http://localhost:2808/js/angular.min.js:6:425
at http://localhost:2808/js/angular.min.js:42:407
at q (http://localhost:2808/js/angular.min.js:7:495)
at g (http://localhost:2808/js/angular.min.js:41:476)
at http://localhost:2808/js/angular.min.js:42:149
at q (http://localhost:2808/js/angular.min.js:7:495)
at g (http://localhost:2808/js/angular.min.js:41:476)
at eb (http://localhost:2808/js/angular.min.js:46:44)
at c (http://localhost:2808/js/angular.min.js:21:373)
at Sc (http://localhost:2808/js/angular.min.js:22:179
当模块由于某些异常而无法加载时会发生此错误。上面的错误消息应该提供额外的上下文。
模块无法加载的一个常见原因是您已经忘记了 包含具有已定义模块的文件或文件不能包含的文件 加载。
答案 0 :(得分:0)
angular.module
的第二个参数用于包含其他角度模块。您试图将控制器包含在内:
angular.module('app', [
'imageCtrlController', // not a module
'adminCreateController', // ...also not a module
'ui.bootstrap', // is a module
'ngRoute' // ...is as well
]);
修正:
angular.module('app', [
'ui.bootstrap',
'ngRoute'
]);