Utilisation des contrôleurs AngularJS créés avec angular.module (). Controller ()

Je suis encore très novice chez AngularJS et je travaille à la mise en place de ma première application. Je voudrais pouvoir faire ce qui suit:

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}); }]); 

En utilisant cette configuration, l’erreur suivante est générée:

 Uncaught ReferenceError: home is not defined from App 

Ma question est la suivante: comment puis-je enregistrer des contrôleurs en utilisant angular.module.controller() ou $controllerProvider.register() directement) et utiliser le contrôleur enregistré ailleurs dans mon application.

Ma motivation: je voudrais éviter d’utiliser les fonctions de constructeur globales comme contrôleurs (comme la plupart des exemples sur l’utilisation d’angularjs.org) ou les espaces de noms complexes. Si je pouvais enregistrer et utiliser des contrôleurs en tant que noms de variables uniques (qui ne sont pas alors placés dans la scope globale), cela serait idéal.

Essayez d’utiliser un identifiant de chaîne.

routeProvider.when('/', {templateUrl: 'partials/home.html', controller: 'home'});

Lorsque vous utilisez un littéral, il recherche une variable appelée home , mais cela n’existe pas dans ce cas.

Si vous obtenez le contrôleur n’est pas défini erreur, vous devez écrire le nom de votre contrôleur dans les guillemets.

ou définir votre contrôleur comme ça

 function controllerName() { //your code here } 

reportez-vous à ceci: UnCaught ReferenceError: le contrôleur n’est pas défini dans AngularJS