Comprendre l'injection au-delà des composants
Dans Angular 2 (bêta) ), l'injection de dépendances permet aux développeurs de transmettre des services de manière transparente au sein des composants. Cependant, il est souvent nécessaire d'injecter des services en dehors des classes de composants.
Injecter des services via @Injectable Decorator
La clé pour injecter des services en dehors des composants réside dans l'utilisation du @Décorateur injectable sur la classe de service. Ce décorateur signifie que les paramètres constructeur de la classe peuvent être injectés.
Système d'injection hiérarchique
Angular 2 utilise un système d'injection hiérarchique qui correspond à l'arborescence des composants. Les injecteurs de services ne sont pas explicitement définis ; au lieu de cela, ils sont implicitement associés à des composants. La liaison hiérarchique garantit que les enfants injecteurs ont accès aux prestataires définis dans les injecteurs parents.
Exemple d'application et relations entre les injecteurs
Considérez l'exemple d'application suivant avec un AppComponent (composant principal) , ChildComponent, Service1 (utilisé par ChildComponent) et Service2 (utilisé par Service1) :
<br>Application</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> |
AppComponent
|
ChildComponent
getData() --- Service1 --- Service2
Cette application dispose de trois injecteurs : application, AppComponent et ChildComponent. L'injection Service1 pour ChildComponent et l'injection Service2 pour Service1 impliquent la hiérarchie d'injecteur suivante :
Résolution dynamique des dépendances
Les injecteurs résolvent dynamiquement les dépendances en fonction de la hiérarchie des injecteurs. Les fournisseurs manquants sont automatiquement recherchés dans les injecteurs parents, en cascade jusqu'à l'injecteur d'application.
Configuration du fournisseur à plusieurs niveaux
Les fournisseurs peuvent être configurés à chaque niveau d'injecteur (application , composant). Cela permet un partage flexible des dépendances :
Conclusion
En utilisant le décorateur @Injectable et en comprenant la hiérarchie des injecteurs, les développeurs peuvent injecter efficacement des services en dehors des composants dans Angular 2 (bêta), permettant ainsi une plus grande efficacité gestion des dépendances et organisation du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!