简体   繁体   中英

angular module not available even though it's defined

When I try to run the code below I get two errors that say

Error: [$injector:nomod] Module 'rooms' 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.

Error: [$injector:modulerr] Failed to instantiate module app due to: [$injector:nomod] Module 'app' 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.

I can see that I haven't misspelled the the name of the module anywhere and I have included the dependencies for the necessary modules and I have structured the modules in the necessary order so that none of the modules are undefined for each other(as in rooms.controllers module exists before it's injected and rooms module exists before it's injected into the app module

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

})();

This code block is not executed.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM