Tudo o que você precisa saber sobre fábrica em AngularJS

AngularJS fornece serviços que são reutilizáveis objetos de um único botão. Eles podem ser usados para compartilhar o código entre os usuários das aplicações AngularJS. Eles também podem ser injetados em diretivas, filtros e controladores. Neste artigo, vamos entender a Fábrica em AngularJS.

  • O que é Fábrica em AngularJS?
  • Diferença entre Serviço e Fábrica
  • Exemplo de Fábrica em JavaScript

O que é Fábrica em AngularJS?

Fábrica é uma função angular que é usada para retornar os valores. Um valor sob demanda é criado pela fábrica, sempre que um serviço ou controlador precisar dele. Uma vez criado o valor, ele é reutilizado para todos os serviços e controladores.

Angular Logo - Factory in AngularJS

Podemos usar a fábrica para criar um serviço.

Diferença entre Serviço e Fábrica

  • Um serviço pode ser definido da seguinte forma:

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'

});

    >

  • Uma fábrica, por outro lado, pode ser definido da seguinte forma:

app.factory('FirstService', function () {

return {

sayHola: function () {

console.log('Hola');

}

}

});

fábrica() é também um método que leva um nome e uma função que define a fábrica. Podemos injetá-lo da mesma forma que injetar um serviço. A maior diferença entre um serviço e uma fábrica é que retornamos um objeto literal no caso da fábrica (em vez de usarmos isto). A razão é que o serviço é uma função construtora enquanto que uma fábrica não o é.

  • Para uma melhor compreensão, vamos dar uma olhada na função de fábrica():

function factory(name, factFn, enforce) {

return provider(name, {

$get: enforce !== false ? enforceReturnValue(name, factFn) : factFn

});

}

>No código dado acima, ele leva o nome e a função de fábrica passada. Ele retorna um provedor com o mesmo nome, juntamente com um método $get(que é a função de fábrica) . Isto se deve ao fato de que sempre que se pede ao injetor uma dependência específica, o injetor pede ao provedor uma instância desse serviço, chamando o método $get().

    Na injecção do FirstService, as funções de fábrica são chamadas:

FirstServiceProvider.$get(); // return the instance of the service

    >

  • Para o código do serviço:

function service(name, constructor) {

return factory(name, );

}>

> Quando chamamos service(), factory() é o que é realmente chamado. Isto é feito passando uma função que pede ao injector para instanciar um objecto pelo construtor. Em termos mais simples, o serviço chama uma fábrica predefinida.

$injector.instantiate() chama o Object.create() com a função construtor. É por isso que isto é usado em serviços.

Exemplo de Fábrica em JavaScript

var firstModule = angular.module("firstModule", );

firstModule.factory("firstFactory", function() {

return "a value";

});

firstModule.controller("FirstController", function($scope, firstFactory) {

console.log(firstFactory);

});

Injeção de valores na fábrica

Um valor pode ser injetado na fábrica pelo seguinte método:

>var firstModule = angular.module("firstModule", );

firstModule.value("numberValue", 29);

>firstModule.controller("FirstController", function($scope, numberValue) {

>console.log(numberValue);

>});>

NOTE: Deve-se notar que o valor produzido pela função de fábrica é injetado, não a função de fábrica em si.

Com isto, chegamos ao fim desta Fábrica no artigo AngularJS. Espero que você tenha entendido o que é exatamente uma fábrica e como ela difere de um serviço.

Check out the Angular training by Edureka, uma empresa de aprendizagem on-line confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados pelo mundo. Angular é um framework JavaScript que é usado para criar aplicações web escaláveis, empresariais e de desempenho do lado do cliente. Com a adoção do Angular framework sendo alta, a gestão do desempenho da aplicação é orientada indiretamente para a comunidade, gerando melhores oportunidades de trabalho. A Angular Certification Training visa cobrir todos estes novos conceitos em torno do Desenvolvimento de Aplicações Empresariais.

Deixe um comentário