Kõik, mida peate teadma AngularJSi tehase kohta



See artikkel annab teile üksikasjalikud ja põhjalikud teadmised AngularJS-i tehasest ja selle erinevusest teenusest.

osutab teenuseid, mis on korduvkasutatavad üksikud objektid. Neid saab kasutada koodi jagamiseks kasutajate AngularJS rakenduste vahel. Neid saab süstida ka direktiividesse, filtritesse ja . Selles artiklis mõistame AngularJSi tehast.

Mis on tehas AngularJS-is?

Tehas on nurkfunktsioon, mida kasutatakse väärtuste tagastamiseks. Vajaduse korral loob tehas väärtuse alati, kui teenus või kontroller seda vajab. Kui väärtus on loodud, kasutatakse seda uuesti kõigi teenuste ja kontrollerite jaoks.





Nurga logo - tehas AngularJS-is

Teenuse loomiseks saame kasutada tehast.



Teenuse ja tehase erinevus

  • Teenust saab määratleda järgmiselt:

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

this.sayHola = funktsioon () {



console.log ('Tere')

}

})

Meetod .service () võtab nime ja funktsiooni, mis määrab teenuse. Saame seda süstida järgmisel viisil:

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

FirstService.sayHello () // logib 'Tere'

})

  • Tehast saab seevastu määratleda järgmiselt:

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

tagastama {

sayHola: funktsioon () {

console.log ('Tere')

}

}

})

kuidas muuta topelt int

factory () on ka meetod, mis võtab nime ja funktsiooni, mis määrab tehase. Võime seda süstida samamoodi nagu teenuse süstimist. Suurim erinevus teenuse ja tehase vahel on see, et meie tagastab objekti sõnasõnalise tehase puhul (selle kasutamise asemel). Põhjus on see, et teenus on konstruktori funktsioon, tehas aga mitte.

  • Parema mõistmise huvides vaatame tehase funktsiooni ():

function factory (nimi, factFn, jõustama) {

tagastuspakkuja (nimi, {

$ get: jõustada! == false? enforceReturnValue (nimi, factFn): factFn

})

}

Eespool toodud koodis võtab see nime ja läbitud tehase funktsiooni. See tagastab sama nimega pakkuja koos a-ga$ saadameetod (mis on tehase funktsioon). Selle põhjuseks on see, et alati, kui injektorilt küsitakse konkreetset sõltuvust, küsib injektor teenuseosutajalt selle teenuse eksemplari, helistades$ get ()meetod.

  • FirstService'i süstimisel nimetatakse tehase funktsioone:

FirstServiceProvider. $ Get () // tagastab teenuse eksemplari

  • Teeninduskoodi saamiseks:

funktsiooniteenus (nimi, konstruktor) {

tagastage tehas (nimi, ['$ injector', funktsioon ($ injector) {

tagastage $ injector.instantiate (konstruktor)

}])

}

Kui me helistameteenus (), tehas ()on see, mida tegelikult nimetatakse. Seda tehakse funktsiooni edastamise kaudu, mis palub injektoril ehitaja objekti objektiks muuta. Lihtsamalt öeldes helistab teenus etteantud tehasele.

$ injector.instantiate ()kutsubObject.create ()konstruktori funktsiooniga. Sellepärast seda kasutatakse teenustes.

Näide tehasest JavaScriptis

var firstModule = nurk.moodul ('firstModule', [])

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

tagastama 'a value'

})

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

console.log (firstFactory)

})

Väärtuste süstimine tehasesse

Väärtuse saab tehasesse sisestada järgmise meetodi abil:

var firstModule = nurk.moodul ('firstModule', [])

firstModule.value ('numberValue', 29)

firstModule.controller ('FirstController', funktsioon ($ ulatus, numberValue) {

console.log (numberValue)

})

MÄRGE: Tuleb märkida, et sisestatakse tehase funktsiooni poolt toodetud väärtus, mitte tehase funktsioon ise.

Sellega jõuame selle tehase AngularJS artiklis lõpule. Loodan, et saite aru, mis on tehas ja mis erineb teenusest.

Ckurat välja Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Angular on JavaScripti raamistik, mida kasutatakse skaleeritavate, ettevõtte ja jõudlusega kliendipoolsete veebirakenduste loomiseks. Kuna nurgaraamistiku kasutuselevõtt on kõrge, on rakenduse jõudlusjuhtimine kogukonnapõhine, parandades ka paremaid töövõimalusi. Nurgasertifitseerimise koolituse eesmärk on hõlmata kõiki neid uusi kontseptsioone ettevõtte rakenduste arendamise ümber.