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.

4voto

pleerock Punkte 17230

Neben der unten stehenden Antwort, wenn Sie diesen Fehler in der Konsole haben ([$injector:nomod], MINERR_ASSET:22), aber alles scheint gut zu funktionieren, stellen Sie sicher, dass Sie keine doppelten Einbindungen in Ihrem index.html haben.

Denn dieser Fehler kann auch auftreten, wenn Sie doppelte Einbindungen der Dateien haben, die dieses Modul verwenden und vor der Datei mit der tatsächlichen Moduldeklaration eingebunden sind.

3voto

zahid9i Punkte 576

Wenn Sie das offizielle Tutorial von AngularJS durchgehen https://docs.angularjs.org/tutorial/step_07

Hinweis: Ab AngularJS-Version 1.2 befindet sich ngRoute in seinem eigenen Modul und muss durch das Laden der zusätzlichen angular-route.js-Datei geladen werden, die wir oben über Bower herunterladen.

Beachten Sie auch die ngRoute-API https://docs.angularjs.org/api/ngRoute

Installation Fügen Sie zuerst angular-route.js in Ihr HTML ein:

Sie können diese Datei von folgenden Orten herunterladen:

Google CDN z.B. //ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-route.js Bower z.B. bower install angular-route@X.Y.Z code.angularjs.org z.B. "//code.angularjs.org/X.Y.Z/angular-route.js" wobei X.Y.Z die AngularJS-Version ist, die Sie verwenden.

Laden Sie dann das Modul in Ihrer Anwendung, indem Sie es als abhängiges Modul hinzufügen:

angular.module('app', ['ngRoute']); Damit sind Sie bereit, loszulegen!

2voto

Josh Punkte 1816

John Papa hat meine Frage zu diesem ziemlich obskuren Kommentar beantwortet: Manchmal bedeutet dieser Fehler, dass eine Datei fehlt. Manchmal bedeutet es, dass das Modul definiert wurde, nachdem es verwendet wurde. Eine einfache Möglichkeit, dies zu lösen, besteht darin, die Moduldateien *.module.js zu benennen und diese zuerst zu laden.

1voto

Bipin Shilpakar Punkte 188

Es handelt sich um einen Injector-Fehler. Möglicherweise haben Sie viele JavaScript-Dateien verwendet, sodass der Injector fehlt.

Einige sind hier:

var app = angular.module('app',
    ['ngSanitize', 'ui.router', 'pascalprecht.translate', 'ngResource',
     'ngMaterial', 'angularMoment','md.data.table', 'angularFileUpload',
     'ngMessages', 'ui.utils.masks', 'angular-sortable-view',
     'mdPickers','ngDraggable','as.sortable', 'ngAnimate', 'ngTouch']
);

Bitte überprüfen Sie den Injector, den Sie in Ihre app.js einfügen müssen.

0voto

Frank Conry Punkte 2543

Mein Problem lag in der config.xml. Ändern:

zu

hat es behoben.

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