example - controlador con este nombre no está registrado en angularjs ngroute
directivas angularjs (1)
Estoy creando una aplicación web en mvc-angularjs, estoy usando ngroute.
Controlador Angularjs en mi diseño con código html:
<div class="container body-content" ng-app="MyApp">
<br />
<br />
<br />
<div style="float:right;">
<a href="#" class="btn btn-danger">Sign Out</a>
</div>
@RenderBody()
<hr />
</div>
<script>
(function () {
var app = angular.module(''MyApp'', [''ngRoute'', "ngStorage"]);
app.controller(''myctrllayout'', function ($scope) {
});
})();
</script>
y esta es mi página de bienvenida:
<div ng-controller="welcome">
</div>
<script>
angular.module(''MyApp'',[])
.controller(''welcome'', function ($scope) {
});
</script>
cuando ejecuto el código, recibí el siguiente error
Error: $ controller: ctrlreg Un controlador con este nombre no está registrado.
El controlador con el nombre ''bienvenida'' no está registrado.
cuando cambio mi aplicación de (''MyApp'',[])
a (''MyApp'')
:
¡El módulo ''MyApp'' no está disponible! O escribió mal el nombre del módulo o se olvidó de cargarlo. Si registra un módulo, asegúrese de especificar las dependencias como segundo argumento.
angular.module
Puede crear un nuevo módulo o recuperar un existente. Esto depende de la sintaxis que use.
Esto también se menciona en la documentación angular oficial .
p.ej
angular.module(''MyApp'',[])
crea un nuevo módulo porque incluye la matriz de inyección de dependencia (como segundo parámetro).
angular.module(''MyApp'')
es una referencia en el módulo existente porque no incluye la matriz de inyección de dependencia.
En su caso, crea un nuevo módulo en el primer bloque de código. Entonces en el segundo bloque de código necesitas recuperarlo.
Posiblemente el problema se resolvería si cambias
angular.module(''MyApp'',[])
a angular.module(''MyApp'')
en el segundo bloque de código.