Tudo o que você precisa saber sobre o Factory em AngularJS



Este artigo fornecerá a você um conhecimento detalhado e abrangente do Factory em AngularJS e como ele difere de um serviço.

fornece serviços que são objetos singleton reutilizáveis. Eles podem ser usados ​​para compartilhar o código entre os aplicativos AngularJS dos usuários. Eles também podem ser injetados em diretivas, filtros e . Neste artigo, vamos entender a fábrica em AngularJS.

O que é fábrica no AngularJS?

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





Angular Logo - Fábrica em 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 maneira:

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

this.sayHola = function () {



console.log ('Olá')

}

})

O método .service () leva o nome e a função que define o serviço. Podemos injetá-lo da seguinte maneira:

app.controller ('AppController', function (FirstService) {

FirstService.sayHello () // registra 'Olá'

})

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

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

Retorna {

sayHola: function () {

console.log ('Olá')

como configurar php

}

}

})

factory () também é um método que recebe um nome e uma função que define a fábrica. Podemos injetá-lo da mesma forma que injetar um serviço. A principal diferença entre um serviço e uma fábrica é que nós retornar um objeto literal no caso de fábrica (em vez de usar isso). O motivo é que o serviço é uma função de construtor, ao passo que uma fábrica não é.

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

ffábrica de unção (nome, factFn, aplicar) {

provedor de retorno (nome, {

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

})

}

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

  • Ao injetar o FirstService, as funções de fábrica são chamadas:

FirstServiceProvider. $ Get () // retorna a instância do serviço

  • Para o código de serviço:

serviço de função (nome, construtor) {

return factory (name, ['$ injector', function ($ injector) {

return $ injector.instantiate (construtor)

}])

}

Quando ligamosserviço (), fábrica ()é o que realmente é chamado. Isso é feito passando uma função que pede ao injetor para instanciar um objeto pelo construtor. Em termos mais simples, o serviço chama uma fábrica predefinida.

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

Exemplo de fábrica em JavaScript

var firstModule = angular.module ('firstModule', [])

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

retornar 'um valor'

})

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

console.log (firstFactory)

})

Injetando Valores na Fábrica

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

var firstModule = angular.module ('firstModule', [])

mesclar classificar código-fonte c ++

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

NOTA: Deve-se observar que o valor produzido pela função de fábrica é injetado, não a própria função de fábrica.

Com isso, chegamos ao fim deste artigo do Factory in AngularJS. Espero que você tenha entendido o que exatamente é uma fábrica e como isso difere de um serviço.

Cque diabo pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. Angular é uma estrutura JavaScript que é usada para criar aplicativos da web escaláveis, corporativos e de desempenho do lado do cliente. Como a adoção da estrutura Angular é alta, o gerenciamento de desempenho do aplicativo é orientado pela comunidade, gerando indiretamente melhores oportunidades de trabalho. O Angular Certification Training visa cobrir todos esses novos conceitos em torno do Enterprise Application Development.