Todavía soy muy nuevo en AngularJS y estoy trabajando en la configuración de mi primera aplicación. Me gustaría ser capaz de hacer lo siguiente:Uso de AngularJS Controladores creados con angular.module(). Controller()
angular.module('App.controllers', [])
.controller('home', function() {
$scope.property = true;
}]);
angular.module('App', ['App.controllers'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {templateUrl: 'partials/home.html', controller: home});
}]);
Usando esta configuración se genera el siguiente error:
Uncaught ReferenceError: home is not defined from App
Mi pregunta es: ¿Cómo me puedo registrar controladores utilizando angular.module.controller()
(o $controllerProvider.register()
directamente) y use el controlador registrado en otra parte de mi aplicación.
Mi motivación: me gustaría evitar el uso de funciones de constructores globales como mis controladores (como la mayoría de los ejemplos en el uso de angularjs.org) o espacios de nombres complejos. Si puedo registrar y usar los controladores como nombres de variables individuales (que no se ponen entonces en el alcance global) sería ideal.
Gracias, que hizo el truco. Tan sencillo. –
La solución anterior no parece funcionar ... Me aparece "Error: Argumento 'PhoneListCtrl' no es una función, tiene cadena". ¡Ayuda! – mpowered
Si define el controlador como una función ('función PhoneListCtrl() {}'), debe hacer referencia a él como una función. Si lo define con .controller ('app.controller ('PhoneListCtrl', function() {})', debe hacer referencia a él como una cadena. –