Cuando se usa angular 1.2 en lugar de 1.07, el siguiente 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.
javascript
angularjs
Shoen
fuente
fuente
"Error: [$injector:nomod] Module 'ngRoute' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument."
mi error desapareció al agregar este '()' al final
fuente
Una cosa más para agregar a la lista, ya que este es el primer resultado que surge con una búsqueda en Google de 'Error: [$ injector: modulelerr] angular':
Si tiene una discrepancia entre el nombre de su aplicación en su 'index'html' y en la definición principal de su aplicación javascript, esto también puede generar este error.
Por ejemplo, si su HTML se ve así:
Y su JavaScript se ve así (es decir, tiene un error tipográfico en el nombre de la aplicación: myWebCite en lugar de myWebSite):
entonces también se generará el error 'Error: [$ inyector: modulador] angular'.
fuente
Un error novato puede ser olvidar incluir el módulo js
archivos en el index.html en absoluto
fuente
Para aquellos que usan marcos que comprimen, agrupan y minimizan archivos, asegúrese de definir cada dependencia explícitamente ya que estos marcos tienden a cambiar el nombre de sus variables. Eso me sucedió mientras usaba ASP.NET
BundleConfig.cs
para agrupar los scripts de mi aplicación.antes de
Después
Lea más aquí sobre Anotación de dependencia angular.
fuente
Si tiene este error en la consola
([$injector:nomod], MINERR_ASSET:22)
, asegúrese de no incluir el código de su aplicación antes de cargarAngularJS
Estaba haciendo eso y una vez que arreglé el pedido, el error desapareció.
fuente
Acabo de experimentar el mismo error, en mi caso fue causado por el segundo parámetro
angular.module
que falta, con suerte esto puede ayudar a alguien con el mismo problema.angular.module('MyApp');
angular.module('MyApp', []);
fuente
fuente
Tuve el mismo problema y probé todas las soluciones posibles. Pero finalmente llegué a saber por la documentación que el
ngRoute
módulo ahora está separado. Echa un vistazo a este enlaceSolución: agregue el cdn angular-route.js después del script angular.min.js
fuente
Otro desencadenante de este error es dejar el "." antes de su "de lo contrario" o cualquier otra ruta en su definición de ruta:
Mortificado por una parada completa, una vez más. Tengo que amar a JS!
fuente
Además de la respuesta a continuación, si tiene este error en la consola (
[$injector:nomod]
,MINERR_ASSET:22
), pero todo parece funcionar bien, asegúrese de que no tenga duplicados incluidos en su index.html.Debido a que este error también se puede generar si tiene inclusiones duplicadas de los archivos que usan este módulo y se incluyen antes del archivo con la declaración real del módulo.
fuente
Si sigue el tutorial oficial de angularjs https://docs.angularjs.org/tutorial/step_07
También tenga en cuenta de ngRoute api https://docs.angularjs.org/api/ngRoute
fuente
John Papa proporcionó mi problema con este comentario bastante oscuro: a veces, cuando recibe ese error, significa que le falta un archivo. Otras veces significa que el módulo se definió después de su uso. Una forma de resolver esto fácilmente es nombrar los archivos del módulo * .module.js y cargarlos primero.
fuente
Mi problema estaba en el config.xml. Cambiando:
a
arreglado.
fuente
Es un error de inyector. Es posible que haya utilizado muchos archivos JavaScript, por lo que puede faltar el inyector.
Algunos estan aqui:
Compruebe el inyector que necesita insertar en su
app.js
fuente
En algún momento he visto este error cuando cambias entre los proyectos y ejecutas los proyectos en el mismo puerto uno tras otro. En ese caso Goto Chrome Developer Tools> Red y tratar de comprobar el archivo escrito js real para:
if the file match with the workspce
. Para resolver esto, seleccioneDisable Cache
en red.fuente
Después de muchos meses, volví a desarrollar una aplicación AngularJS ( 1.6.4 ), para la cual elegí Chrome (PC) y Safari (MAC) para probar durante el desarrollo. Este código presentó este error: $ inyector: error del módulo modulador en IE 11.0.9600 (Windows 7, 32 bits).
Tras la investigación, quedó claro que el error se debía a uso forEach loop, simplemente reemplazó todos los bucles forEach por bucles normales para que las cosas funcionen como están ...
Básicamente fue un problema de IE11 (respondido aquí ) en lugar de un problema de AngularJS, pero quiero poner esta respuesta aquí porque la excepción planteada fue una excepción de AngularJS. Espero que nos ayude a algunos de nosotros.
similar. no use funciones lambda ... simplemente reemplace () => {...} con una buena función ol '() {...}
fuente
Tuve este problema y después de verificar mi código línea por línea vi esto
acabo de cambiarlo a
y ha funcionado así que revisa tus etiquetas.
fuente