错误:$ injector:modulerr模块使用单独的.js文件时出错

时间:2017-10-26 18:52:29

标签: angularjs angularjs-injector

看着所有其他答案,就像我正在做的那样。

我的'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
  

当模块由于某些异常而无法加载时会发生此错误。上面的错误消息应该提供额外的上下文。

     

模块无法加载的一个常见原因是您已经忘记了   包含具有已定义模块的文件或文件不能包含的文件   加载。

1 个答案:

答案 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'
]);