De retour de la fonction de AngularJS usine
J'essaie de comprendre ce que le but est de la partie de retour de ce AngularJS usine méthode?
return {
getMessages: getMessages
};
Ce qui se passe si nous avons ajouté une nouvelle méthode pour cette usine dite getAnotherMessage(), aurions-nous besoin de mettre à jour ce retour segment?
myModule.factory('HelloWorld', function($q, $timeout) {
var getMessages = function() {
var deferred = $q.defer();
$timeout(function() {
deferred.resolve(['Hello', 'world!']);
}, 2000);
return deferred.promise;
};
return {
getMessages: getMessages
};
});
- double possible de Comment utiliser Révélant motif de module en JavaScript
- merci, l'un des commentaires liés ici qui a été utile
Vous devez vous connecter pour publier un commentaire.
factory
est un fournisseur constructeur:Ainsi, lorsque l'usine est chargé en premier lieu par Angulaire, il exécute la fonction qui est passée et stocke tout ce qui est retourné en tant que fournisseur.
En d'autres mots, le code suivant est exécuté une seule fois, et une seule fois - lors de l'amorçage:
Ci-dessus obtient une référence à la
getMessage
fonction et l'attache à la propriétégetMessages
à l'intérieur le retour de l'objet singleton.Lorsque le fournisseur est alors injecté dans votre code, que l'objet retourné est ce qui est passé en vous donnant accès à la HelloWorld.getMessages (et toutes les autres propriétés de l'objet retourné).
Donc, oui, si vous souhaitez associer une autre propriété, comme une fonction, avec le fournisseur de l'usine de constructions de), vous devez l'inclure en tant que propriété du retour à l'objet singleton:
Vous pouvez également déclarer un objet vide d'abord et ajouter des fonctions dans l'objet
et enfin le retour de l'objet.