无法实例化模块maq

时间:2014-10-19 03:36:17

标签: angularjs

我无法弄清楚我在这里做错了什么。

//app.js

'use strict';

var app = angular.module('maq', [
  'ui.router',
  'maq.home.controller'
]).run([
    '$rootScope',
    '$state',
    '$stateParams', function($rootScope, $state, $stateParams){
      $rootScope.$state = $state;
      $rootScope.$stateParams = $stateParams;
  }])
  .config([
    '$stateProvider',
    '$urlRouterProvider', function($stateProvider, $urlRouterProvider){

      $urlRouterProvider.otherwise('/');

      $stateProvider
        .state('home', {
          url: '/',
          templateUrl: 'views/home.html',
          controller: 'maq.home.controller'
        })
  }]);

//controller
'use strict';

app
  .controller('maq.home.controller', [function(){

  }]);


//error
Uncaught Error: [$injector:modulerr] Failed to instantiate module maq due to:
Error: [$injector:modulerr] Failed to instantiate module maq.home.controller due to:
Error: [$injector:nomod] Module 'maq.home.controller' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

2 个答案:

答案 0 :(得分:1)

您实际上没有名为maq.home.controller的模块,而是您的注册方式是控制器名称。

如果您想将控制器与另一个模块分开(就像您要做的那样)

尝试: -

angular.module('maq.controller', []); //<-- Module creation
//...
angular.module('maq.controller')
        .controller('HomeController', [function() { //<-- Controller registration

}]);

并在您的应用中: -

var app = angular.module('maq', [
  'ui.router',
  'maq.controller' //<-- Controller mmodule
]);

或者只是删除对不存在的模块的依赖: -

angular.module('maq', [
  'ui.router',
  //'maq.home.controller' <-- Remove this
])

答案 1 :(得分:0)

当它不是模块时,你试图依赖另一个名为maq.home.controller的模块,它是一个控制器。您不需要在模块声明中将控制器列为依赖项。所以就这样把依赖性拿出来:

var app = angular.module('maq', [
  'ui.router'
])