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.
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$ get
mé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.