L'idée est fausse, il n'est pas nécessaire de définir des variables globales dans angular. Vos données doivent être fournies via service, factory, provider.
Et ces choses peuvent être injectées en dépendance, donc il n'y a pas du tout besoin de variables globales
@leftstick a raison, AngularJS utilise le style d'injection de dépendances pour structurer l'ensemble du framework d'application. Il est préférable de ne pas déclarer de variables globales, mais d'en faire un service. De cette façon, vous pouvez éviter beaucoup de problèmes :
Conflit de noms. Les conflits de noms en JavaScript ne donneront aucun avertissement. Si votre projet est petit, la probabilité qu'ils se produisent est faible, mais il est très difficile à déboguer.
Séquence d'initialisation. Si vous définissez une variable globale ACtrl dans window.a, par exemple, si vous souhaitez l'utiliser dans BCtrl, alors vous devez vous assurer que ACtrl est exécuté avant BCtrl. C'est souvent difficile à réaliser. , même logiquement déroutant.
En Angular, le moyen le plus raisonnable est de transformer a en aService et de l'injecter dans ACtrl et BCtrl.
Comment définir un service et la relation entre Module, Service, Usine et Fournisseur peut se référer à ce blog :
L'idée est fausse, il n'est pas nécessaire de définir des variables globales dans
angular
. Vos données doivent être fournies viaservice
,factory
,provider
.Et ces choses peuvent être injectées en dépendance, donc il n'y a pas du tout besoin de variables globales
$rootScope est un objet et peut être lié à des variables globales sous la forme de $rootScope.xxx='';
@leftstick a raison, AngularJS utilise le style d'injection de dépendances pour structurer l'ensemble du framework d'application. Il est préférable de ne pas déclarer de variables globales, mais d'en faire un service. De cette façon, vous pouvez éviter beaucoup de problèmes :
ACtrl
danswindow.a
, par exemple, si vous souhaitez l'utiliser dansBCtrl
, alors vous devez vous assurer queACtrl
est exécuté avantBCtrl
. C'est souvent difficile à réaliser. , même logiquement déroutant.En Angular, le moyen le plus raisonnable est de transformer
a
enaService
et de l'injecter dansACtrl
etBCtrl
.Comment définir un service et la relation entre Module, Service, Usine et Fournisseur peut se référer à ce blog :
http://harttle.github.io/2015/06/07/angular-module.html
Maintenant, Angularjs2 est sorti