En utilisant angular 1.2 au lieu de 1.07, le morceau de 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 se situe 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.
Le problème était dû à l'absence d'inclusion 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']);
Si vous avez cette erreur dans la console ([$injector:nomod], MINERR_ASSET:22)
, vérifiez que vous n'incluez pas le code de votre application avant de charger AngularJS
.
Je faisais cela et une fois que j'ai corrigé l'ordre, l'erreur a disparu.
Outre la réponse ci-dessous, si vous obtenez cette erreur dans la console ([$injector:nomod]
, MINERR_ASSET:22
), mais que tout semble fonctionner correctement, assurez-vous que vous n'avez pas de doublons dans votre index.html.
En effet, cette erreur peut également se produire si vous avez des inclusions en double des fichiers qui utilisent ce module et qui sont inclus avant le fichier contenant la déclaration du module.