450 Stimmen

AngularJS 1.2 $injector:modulerr

Wenn Sie anstelle von 1.07 Angular 1.2 verwenden, ist das folgende Code-Stück nicht mehr gültig, warum?

'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: '/'
        });
    }
]);

Das Problem liegt im Konfigurationsteil des Injectors (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) 

Wenn ich mich richtig erinnere, begann dieses Problem mit Angular 1.1.6.

13voto

Moses Machua Punkte 10482

Für diejenigen, die Frameworks verwenden, die Dateien komprimieren, bündeln und minimieren, stellen Sie sicher, dass Sie jede Abhängigkeit explizit definieren, da diese Frameworks dazu neigen, Ihre Variablen umzubenennen. Das ist mir passiert, als ich ASP.NET BundleConfig.cs verwendet habe, um meine App-Skripte zu bündeln.

Vorher

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

Nachher

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

Lesen Sie hier mehr über Angular Dependency Annotation.

9voto

Anth12 Punkte 1869

Ich habe gerade den gleichen Fehler erlebt, in meinem Fall wurde er durch das fehlende zweite Parameter in angular.module verursacht - hoffentlich kann das jemandem mit dem gleichen Problem helfen.

angular.module('MeineApp');

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

7voto

SirajuddinLuck Punkte 141
hinzufügen zum Link

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

6voto

Bastin Robin Punkte 878

Ich hatte das gleiche Problem und habe alle möglichen Lösungen ausprobiert. Aber schließlich habe ich aus der Dokumentation erfahren, dass das ngRoute Modul jetzt getrennt ist. Schau dir diesen Link an

Lösung: Fügen Sie das CDN angular-route.js nach dem angular.min.js Skript hinzu

5voto

Hilary Punkte 322

Ein weiterer Auslöser für diesen Fehler ist, wenn der "." vor Ihrem "otherwise" oder einem anderen Pfad in Ihrer Routendefinition weggelassen wird:

  app.config(['$routeProvider',
     function($routeProvider) {
        $routeProvider.
           when('/view1', {
              templateUrl: 'partials/view1.html',
              controller: 'Ctrl1'
           }).
           otherwise({
              redirectTo: '/viewCounts'
           });
     }]);

Getroffen von einem Punkt, schon wieder. JS muss man einfach lieben!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X