Al utilizar angular 1.2 en lugar de 1.07 el siguiente trozo de código ya no es válido, ¿por qué?
'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: '/'
});
}
]);
el problema está en la parte de configuración del inyector (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 no recuerdo mal este problema comenzó con angular 1.1.6.
El problema fue causado por la falta de inclusión del módulo ngRoute. Desde la versión 1.1.6 es una parte separada:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>
var app = angular.module('myapp', ['ngRoute']);
Si tienes este error en la consola ([$injector:nomod], MINERR_ASSET:22)
, asegúrate de que no estás incluyendo el código de tu aplicación antes de cargar AngularJS
.
Yo estaba haciendo eso y una vez que arreglé el orden, el error desapareció.
Además de la respuesta de abajo, si tiene este error en la consola ([$injector:nomod]
, MINERR_ASSET:22
), pero todo parece funcionar bien, asegúrese de que no tiene includes duplicados en su index.html.
Porque este error también puede surgir si tiene includes duplicados de los archivos, que usan este módulo, y están incluidos antes del archivo con la declaración real del módulo.