Je suis curieux de savoir ce que sont exactement les décorateurs dans AngularJS. Il n'y a pas beaucoup d'informations en ligne pour les décorateurs, à l'exception d'un texte de présentation dans la documentation d'AngularJS et d'une brève mention (bien que intéressante) dans une vidéo YouTube .
Comme le disent les gars Angular, un décorateur est:
Décoration de service, permet au décorateur d'intercepter la création de l'instance de service. L'instance retournée peut être l'instance d'origine ou une nouvelle instance qui délègue à l'instance d'origine.
Je ne sais pas vraiment ce que cela signifie , et je ne sais pas pourquoi vous sépareriez cette logique du service lui-même. Par exemple, si je voulais retourner quelque chose de différent dans des conditions différentes, je passerais simplement différents arguments aux fonctions pertinentes ou utiliserais une autre fonction partageant cet état privé.
Je suis toujours un peu un Noob AngularJS, donc je suis sûr que c'est juste de l'ignorance et / ou de mauvaises habitudes que j'ai prises.
la source
Les décorateurs nous permettent de séparer les préoccupations transversales et permettent aux services de préserver le principe de responsabilité unique sans se soucier du code «d'infrastructure».
Utilisations pratiques des décorateurs:
Dans tous ces cas, nous limitons le code du service à sa responsabilité principale.
la source
decorator
peut intercepter l'instance de service créée parfactory, service, value, provider
, et donne les options pour en changer certainesinstance(service)
qui ne sont pas configurables autrement / avec des options.Il peut également fournir des instances de maquette à des fins de test, par exemple
$http
.la source
directive
définitions présentées par Ben NadelEn termes simples, nous pouvons dire que c'est comme une méthode d'extension. Pour Ex. Nous avons une classe et elle a deux méthodes et au moment de l'exécution, nous voulons y ajouter plus de méthode, puis nous utilisons Decorator.
Nous ne pouvons pas utiliser $ provide.decorator avec des constantes car nous ne pouvons pas modifier les constantes dont elles sont en train de créer une propriété en lecture seule.
la source
En bref, les décorateurs peuvent être décrits comme suit: -
Il utilise le
$provide
service par angular et modifie ou remplace l'implémentation d'un autre serviceExemple:
Applications
En plus de la réponse @JBland.
Paramètres régionaux de l'application: -
Vous pouvez trouver un exemple ici
Modification du comportement par défaut et de l'implémentation existante d'un service par un service angulaire: -
Vous pouvez en trouver un ici
Changement de comportement d'une fonction dans différents environnements.
la source