无法加载模块

时间:2015-08-29 10:32:54

标签: javascript angularjs node.js

您好我正在尝试使用angular开发一个Web应用程序。我已将ng-app =“appApp”添加到html文件以及.js文件中。

main.controller.js

(function () {
'use strict';

// register the controller as MainController
angular
    .module('appApp.main')
    .controller('MainController', MainController);

/**
 * @ngdoc function
 * @name appApp.main.provider:MainController
 * @description
 * Provider of the {@link appApp.main.controller:MainController MainController}
 *
 * @param {Service} $scope The scope service to use
 * @param {Service} $http The http service to use
 */

// MainController.$inject = [];

function MainController() {
    var vm = this;
}

})();

main.js

(function () {
'use strict';

// register the route config on the application
angular
    .module('appApp.main', ['ui.router'])
    .config(configMainRoute)

// inject configMainRoute dependencies
configMainRoute.$inject = ['$stateProvider', 'mainMenuProvider'];

// route config function configuring the passed $stateProvider
function configMainRoute($stateProvider, mainMenuProvider) {
    var mainState = {
        name: 'main',
        url: '/',
        authenticate: true,
        templateUrl: 'app/main/main.html',
        controller: 'MainController',
        controllerAs: 'vm'
    };

    $stateProvider.state(mainState);

    mainMenuProvider.addMenuItem({
        name: 'Home',
        state: mainState.name,
        order: 1
    });
}

})();

app.js

(function () {
'use strict';

angular
    .module('appApp', [
        // Add modules below
        'ngCookies',
        'ngResource',
        'ngSanitize',
        'ngMessages',
        'ngMaterial',
        'ui.router',
        'btford.socket-io',
        'appApp.main'
    ])
    .config(appConfig)
    .run(appRun);

...........

当我运行应用程序时,我收到此错误:

  1. 错误:[ng:areq]参数'MainController'不是函数,未定义
  2. 未捕获错误:[$ injector:nomod]模块'appApp.main'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
  3. 我该如何解决这些错误?谢谢

2 个答案:

答案 0 :(得分:2)

首先是:

在你写的html中

ng-app="appApp"

但是在您编写的模块定义中

angular
.module('appApp.main', ['ui.router'])

除非您有另一个appApp模块并且将“appApp.main”模块添加为依赖项,否则模块名称应该相同。

另一件事是,当你使用“ui-router”时,你需要在html中链接ui-router的js库文件以及角度库文件。

只需检查js文件的顺序。首先是角度,然后是所有库js,然后是app,main,主控制器

答案 1 :(得分:1)

我想,

1.您应该拨打ng-app =" appApp.main "或

2.您应该首先声明appApp模块。你应该替换main.js中的一些代码

angular.module('appApp.main', []);

angular.module('appApp', [
        'ui.router',
        'appApp.main'
    ])...

另外,删除main.js中的[ui.router]。它已在app.js

中声明