Le fichier suivant "fonctionne" (dans le sens qu'il ne génère aucune erreur):
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider) {
});
</script>
</html>
mais ça
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider, $rootScope) {
});
</script>
</html>
donne l'erreur:
Erreur: Fournisseur inconnu: $ rootScope du
fichier source modx : http://code.angularjs.org/angular-1.0.0rc7.js
Ligne: 2491
WTF?
Réponses:
Vous ne pouvez pas demander par exemple pendant la phase de configuration - vous ne pouvez demander que des fournisseurs.
Voir http://docs.angularjs.org/guide/module pour plus d'informations.
la source
config
? dire le chemin racine dans l'application asp.net? Je ne veux tout simplement pas utiliser de variables globales et je voulais utiliserng-init='root:<%= myroot %>'
et utiliser de laroot
valeurmodule.config
.angular.module('config', []).constant('appRoot', '/local/js/app');
(ce code serait généré par votre serveur (vous pourriez même le générer sous forme de fichier JS, plutôt que de l'insérer dans le fichier html). Ensuite, votre application charge ce module et a donc accès àappRoot
.J'ai trouvé le "modèle" suivant très utile:
où, MainCtrl est un contrôleur. Je ne suis pas à l'aise de me fier aux noms de paramètres de la fonction Controller en faisant une imitation un-pour-un des instances de peur de changer de nom et de gâcher les choses. Je préfère de loin utiliser explicitement $ inject à cette fin.
la source
MainCtrl
comme ça?angular.module('myMod', []).controller('theController', controllerFunction); controllerFunction.$inject = []; function controllerFunction() { }
Je ne vous suggère pas d'utiliser la syntaxe comme vous l'avez fait. AngularJS vous permet d'avoir différentes fonctionnalités que vous voulez (
run
,config
,service
,factory
, etc ..), qui sont plus professional.In cette fonction vous ne même pas d'injecter que par vous - même commevous pouvez l'utiliser, comme vous le savez.
la source