角度模块即使已定义也无法使用

时间:2015-05-16 02:32:14

标签: javascript angularjs

当我尝试运行下面的代码时,我得到两个错误,说

  

错误:[$ injector:nomod]模块'房间'不可用!你要么   拼写错误的模块名称或忘记加载它。如果注册了   模块确保您将依赖项指定为第二个   参数。

     

错误:[$ injector:modulerr]无法实例化   模块应用程序由于:[$ injector:nomod]模块' app'不可用!   您要么错误拼写了模块名称,要么忘记加载它。如果   注册模块确保您将依赖项指定为   第二个论点。

我可以看到我没有在任何地方错误拼写模块的名称,我已经包含了必要模块的依赖项,并且我已经按照必要的顺序构建了模块,因此没有任何模块未定义彼此之间(如在room.controllers模块注入之前存在,并且房间模块在注入应用程序模块之前就已存在

(function(){

  'use strict';
  //create the module that is going to contain the controllers for the rooms module
  angular.module('rooms.controllers', [])
    .controller('RoomCtrl', RoomCtrl);

  function RoomCtrl(){
    var vm = this;

    vm.rooms = [];
  };



})();

(function(){
  'use strict';
  //create the rooms module and inject rooms.controllers module and ngRoute module
  angular
    .module('rooms', ['rooms.controllers', 'ngRoute']);
});

(function(){
  'use strict';
  //get the rooms module and config it's routes, because we're getting it we don't need []
  angular
    .module('rooms')
      .config(function($routeProvider){
        $routeProvider
          .when('/rooms',{
            templateUrl:'public/modules/rooms/templates/roomlist.html',
            controller: 'RoomCtrl',
            controllerAs: 'room'
          })
      })
})();


(function(){
  'use strict';
  //bootstrap the whole thing together
  angular.module('app', ['rooms']);

})();

1 个答案:

答案 0 :(得分:2)

此代码块未执行。

(function(){
    'use strict';
    //create the rooms module and inject rooms.controllers module and ngRoute module
    angular.module('rooms', ['rooms.controllers', 'ngRoute']);
})(); // <-- here