Angular permet au Service de déclarer d'autres services comme dépendances, en utilisant le constructeur utilisé lors de l'instanciation de lui-même.
Pour déclarer les dépendances, nous devons les spécifier dans la déclaration de la méthode d'usine et utiliser l'attribut $ inject (tableau d'identification de chaîne) ou utiliser la notation du tableau dans la méthode d'usine.
Habituellement, la déclaration de propriété $ injecte peut être rejetée (c'est-à-dire l'injection de dépendance implicite mentionnée dans //www.vevb.com/article/91815.htm, mais il s'agit d'une propriété expérimentale et échouera après compression et obscurcissement, veuillez l'utiliser avec prudence!).
Utilisez la notation du tableau
fonction myModuleCfgfn ($ fournis) {$ fournis.factory ('myService', ['dep1', 'dep2', fonction (dep1, dep2) {}]);}Utilisez la propriété $ inject
fonction myModuleCfgfn ($ fournis) {var myServiceFactory = function (dep1, dep2) {}; MyServiceFactory. $ inject = ['dep1', 'dep2']; $ fournis.factory («myService», MyServiceFactory); }Utilisation de DI implicite (incompatible avec le code obscurci de compression)
fonction mymodulecfgfn ($ fournis) {$ fournis.factory ('myService', fonction (dep1, dep2) {});}Voici un exemple où il y a deux services, et il y a des dépendances entre eux, ainsi que d'autres services fournis par Angular.
/ ** * Le service Batchlog permet aux messages de former une file d'attente en mémoire, rinçage une fois toutes les 50 secondes. * * @param {*} Message Message à enregistrer. * / fonction BatchLogModule ($ fournis) {$ fournis log (); return function (message) {messageSeue.push (message); / ** * RouteTemplatemonitor surveille les modifications de chaque itinéraire, et chaque bi'anu l'enregistrera via le service BatchLog * / $ fournis {BatchLog ($ Route.current? $ Route.current.Template: null);}); } // Obtenez le service principal, exécutez l'application (écoutez l'événement) angular.injector ([BatchLogModule]). Get ('RouteTemplatemonitor');Choses à noter dans l'exemple:
Ce qui précède est la compilation d'AngularJS gérant les informations sur les dépendances des services. Nous continuerons d'ajouter des informations pertinentes à l'avenir. Merci pour votre soutien pour ce site Web!