AngularJS fournit des services qui sont des objets singleton réutilisables. Ils peuvent être utilisés pour partager le code entre les applications AngularJS des utilisateurs. Ils peuvent également être injectés dans des directives, des filtres et des contrôleurs. Dans cet article, nous allons comprendre l’usine dans AngularJS.
- Qu’est-ce que l’usine dans AngularJS?
- Différence entre le service et l’usine
- Exemple d’usine en JavaScript
Qu’est-ce que l’usine dans AngularJS?
L’usine est une fonction angulaire qui est utilisée pour retourner les valeurs. Une valeur à la demande est créée par la factory, chaque fois qu’un service ou un contrôleur en a besoin. Une fois que la valeur est créée, elle est réutilisée pour tous les services et contrôleurs.
Nous pouvons utiliser la factory pour créer un service.
Différence entre service et factory
- Un service peut être défini de la manière suivante :
app.service('FirstService', function () {
this.sayHola = function () {
console.log('Hola');
};
});
The .service() method takes the name and the function that defines the service. We can inject it in the following way:
app.controller('AppController', function (FirstService) {
FirstService.sayHola(); // logs 'Hola'
});
- Une usine, d’autre part, peut être définie de la manière suivante :
app.factory('FirstService', function () {
return {
sayHola: function () {
console.log('Hola');
}
}
});
factory() est aussi une méthode qui prend un nom et une fonction qui définit la fabrique. Nous pouvons l’injecter de la même manière que l’injection d’un service. La différence majeure entre un service et une factory est que nous retournons un objet littéral dans le cas de factory (au lieu d’utiliser this). La raison est que le service est une fonction constructeur alors qu’une factory ne l’est pas.
- Pour mieux comprendre, regardons la fonction factory():
function factory(name, factFn, enforce) {
return provider(name, {
$get: enforce !== false ? enforceReturnValue(name, factFn) : factFn
});
}
Dans le code donné ci-dessus, elle prend le nom et la fonction factory passée. Il retourne un fournisseur avec le même nom, ainsi qu’une méthode $get
(qui est la fonction de fabrique) . Ceci est dû au fait que chaque fois que l’on demande à l’injecteur une dépendance spécifique, l’injecteur demande au fournisseur une instance de ce service en appelant la méthode $get()
.
- Lors de l’injection de FirstService, les fonctions de la fabrique sont appelées:
FirstServiceProvider.$get(); // return the instance of the service
- Pour le code du service:
function service(name, constructor) {
return factory(name, );
}
Lorsque nous appelons service(), factory()
est celle qui est réellement appelée. Cela se fait en passant une fonction qui demande à l’injecteur d’instancier un objet par le constructeur. En termes plus simples, le service appelle une usine prédéfinie.
$injector.instantiate()
appelle le Object.create()
avec la fonction constructeur. C’est pour cela qu’elle est utilisée dans les services.
Exemple de fabrique en JavaScript
var firstModule = angular.module("firstModule", );
firstModule.factory("firstFactory", function() {
return "a value";
});
firstModule.controller("FirstController", function($scope, firstFactory) {
.
console.log(firstFactory);
});
Injection de valeurs dans Factory
Une valeur peut être injectée dans factory par la méthode suivante :
var firstModule = angular.module("firstModule", );
firstModule.value("numberValue", 29);
firstModule.controller("FirstController", function($scope, numberValue) {
console.log(numberValue);
});
NOTE : Il faut noter que c’est la valeur produite par la fonction factory qui est injectée, et non la fonction factory elle-même.
Avec ceci, nous arrivons à la fin de cet article Factory in AngularJS. J’espère que vous avez obtenu une compréhension de ce qu’est exactement une usine et comment il diffère d’un service.
Check out the Angular training by Edureka, a trusted online learning company with a network of more 250,000 satisfied learners spread across the globe. Angular est un cadre JavaScript qui est utilisé pour créer des applications web côté client évolutives, d’entreprise et de performance. L’adoption du framework Angular étant élevée, la gestion des performances de l’application est gérée par la communauté, ce qui entraîne indirectement de meilleures opportunités d’emploi. La formation de certification Angular vise à couvrir tous ces nouveaux concepts autour du développement d’applications d’entreprise.