Ce sont des “décorateurs” et comment sont-ils utilisés?
Je suis curieux de savoir ce qu'est exactement les décorateurs sont en AngularJS. Il n'y a pas beaucoup d'informations en ligne pour les décorateurs d'économiser pour un texte de présentation dans le AngularJS documentation et une brève (mais intéressant) de mentionner dans un vidéo youtube.
Que l'angle de gars mettre un décorateur est:
Décoration de service, permet à l'décorateur d'intercepter le service
création de l'instance. Le retour de l'instance 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 signifie, et je ne suis pas sûr pourquoi vous séparer de cette logique que le service lui-même. Par exemple, si je voulais revenir à quelque chose de différent dans des conditions différentes, je voudrais juste passer les différents arguments de fonctions ou d'utiliser une autre fonction de partage privé de l'état.
Je suis toujours en sorte d'AngularJS noob donc je suis sûr que c'est juste de l'ignorance et/ou les mauvaises habitudes que j'ai ramassé.
Vous devez vous connecter pour publier un commentaire.
Un bon cas d'utilisation de
$provide.decorator
est quand vous avez besoin de faire mineur "bidouiller" sur une tierce-partie/en amont de service, sur lequel votre module dépend, tout en laissant le service intacte (parce que vous n'êtes pas le propriétaire/responsable du service). Ici est une démonstration sur plunkr.this.email
. Cela rompt l'encapsulation de la troisième partie du service et rend le décorateur vulnérables contre les autres modifications de la troisième partie du service.Décorateurs nous permettent de distinguer les sujets transversaux et de permettre aux services de préserver la seule responsabilité de principe sans se soucier de "l'infrastructure" du code.
Utilisations pratiques de décorateurs:
Dans tous ces cas, nous limitons le code dans le service de sa responsabilité principale.
decorator
peut intercepter instance de service créé parfactory, service, value, provider
, et donne les options à modifier certainsinstance(service)
qui par ailleurs n'est pas configurable /avec des options.Il peut aussi fournir de se moquer d'instances pour des fins de test, par exemple
$http
.directive
définitions présenté par Ben NadelEn mot simple, on peut dire que c'est comme une extension de la méthode. Pour Ex. Nous avons une classe et il a deux méthodes et au moment de l'exécution, nous voulons ajouter plus de méthode, il nous utiliser Décorateur.
Nous ne pouvons pas utiliser $fournir.décorateur avec des constantes parce que nous ne pouvons pas changer les constantes ils sont haletante propriété en lecture seule.
En bref, les décorateurs peuvent être décrites comme suit :-
Il utilise le
$provide
service angulaire et de modifier ou de remplacer la mise en œuvre d'un autre serviceExemple:
Applications
En plus de @JBland réponse.
Application large de paramètres régionaux :-
Vous pouvez trouver un exemple ici
Changiging comportement par défaut des existants et la mise en œuvre d'un service par angulaire de service :-
Vous pouvez trouver un exemple ici
Comportement de commutation de la fonction dans des environnements différents.