AngularJS 1.2 $injector:modulerr

Bei der Verwendung von Angular 1.2 anstelle von 1.07 ist das folgende Codestü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 Injektors (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.

Lösung

Das Problem wurde durch die fehlende Einbeziehung von ngRoute Modul verursacht. Seit Version 1.1.6 ist es ein separater Teil:

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

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

Wenn Sie diesen Fehler in der Konsole haben ([$injector:nomod], MINERR_ASSET:22), stellen Sie sicher, dass Sie Ihren Anwendungscode nicht vor dem Laden von AngularJS eingebunden haben

Ich habe das getan, und nachdem ich die Reihenfolge festgelegt hatte, war der Fehler weg.

Kommentare (0)

Abgesehen von 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 don't haben doppelte enthält in Ihrem index.html.

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

Kommentare (0)