Question AngularJS 1.2 $ injecteur: modulerr


Lorsque vous utilisez 1.2 angulaire au lieu de 1.07 le code suivant n'est plus valide, pourquoi?

'use strict';

var app = angular.module('myapp', []);

app.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
        $locationProvider.html5Mode(true);
        $routeProvider.
        when('/', {
            templateUrl: 'part.html',
            controller: 'MyCtrl'
        }).
        otherwise({
            redirectTo: '/'
        });
    }
]);

le problème réside dans la partie configuration de l'injecteur (app.config):

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.0rc1/$injector/modulerr?p0=muninn&p1=Error%…eapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.0rc1%2Fangular.min.js%3A31%3A252) 

Si je me souviens bien, ce problème a commencé avec angular 1.1.6.


436
2017-08-17 09:56


origine


Réponses:


Le problème a été causé par l'inclusion manquante du module ngRoute. Depuis la version 1.1.6, c'est une partie distincte:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

var app = angular.module('myapp', ['ngRoute']);

630
2017-08-17 10:10



mon erreur a disparu en ajoutant ce '()' à la fin

(function(){
    var home = angular.module('home',[]);

    home.controller('QuestionsController',function(){
        console.log("controller initialized");
        this.addPoll = function(){
            console.log("inside function");
        };
    });
})();

40
2017-11-15 19:43



Une autre chose à ajouter à la liste est le premier résultat qui vient avec une recherche google de 'Erreur: [$ injector: modulerr] angular':

Si vous avez un décalage entre le nom de votre application dans votre 'index'html' et votre définition d'application javascript principale, cela peut également générer cette erreur.

Par exemple, si votre HTML ressemble à ceci:

    </head>
    <body ng-app="myWebSite">

        <!-- My Web Site -->
        <p>About my web site...</p>

        etc ...

Et votre JavaScript ressemble à ceci (c'est-à-dire que vous avez une faute de frappe sur le nom de l'application - myWebCite au lieu de myWebSite):

/** Main AngularJS Web Application */ 
var app = angular.module('myWebCite', [ 'ngRoute' ]); 

/** Configure the Routes */ 
app.config(['$routeProvider', function ($routeProvider) { 
  etc ...

alors l'erreur 'Error: [$ injector: modulerr] angular' sera générée aussi.


40
2017-10-27 18:38



Une erreur de noob peut être d’oublier d’inclure le module js

<script src="app/modules/myModule.js"></script>

fichiers dans le index.html du tout


21
2017-08-17 11:44



Pour ceux qui utilisent des frameworks qui compressent, regroupent et réduisent les fichiers, assurez-vous de définir chaque dépendance explicitement car ces frameworks ont tendance à renommer vos variables. Cela m'est arrivé en utilisant ASP.NET BundleConfig.cs pour regrouper mes scripts d'application ensemble.

Avant

app.config(function($routeProvider) {
    $routeProvider.
      when('/', {
          templateUrl: 'list.html',
          controller: 'ListController'
      }).
      when('/items/:itemId', {
          templateUrl: 'details.html',
          controller: 'DetailsController'
      }).
      otherwise({
          redirectTo: '/'
      });
});

Après

app.config(["$routeProvider", function($routeProvider) {
    $routeProvider.
      when('/', {
          templateUrl: 'list.html',
          controller: 'ListController'
      }).
      when('/items/:itemId', {
          templateUrl: 'details.html',
          controller: 'DetailsController'
      }).
      otherwise({
          redirectTo: '/'
      });
}]);

Lire la suite ici à propos de l'annotation de dépendance angulaire.


13
2017-12-28 12:47



Si vous avez cette erreur dans la console ([$injector:nomod], MINERR_ASSET:22), assurez-vous que vous n'incluez pas votre code d'application avant le chargement AngularJS

Je le faisais et une fois la commande corrigée, l'erreur a disparu.


12
2018-05-10 03:11



Je viens de rencontrer la même erreur, dans mon cas, il a été causé par le deuxième paramètre dans angular.module être absent - espérons que cela peut aider quelqu'un avec le même problème.

angular.module('MyApp');

angular.module('MyApp', []);


8
2018-06-05 17:54



add to link
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.0/angular-route.min.js"></script>

var app = angular.module('apps', [ 'ngRoute' ]); 

7
2018-03-30 06:29