/ / Môžem vytvoriť továreň na vytváranie služieb v AngularJS? - angularjs, angularjs-service, angularjs-factory

Môžem vytvoriť továreň na vytvorenie služieb v AngularJS? - angularjs, angularjs-service, angularjs-factory

Mám túto službu, ktorú by som rád použil, ale mohol bystalo sa, že niektoré časti mojej aplikácie vyžadujú rovnakú službu, ale s rôznymi parametrami na interné použitie. Keďže služby vždy odkazujú na tú istú inštanciu, pokiaľ to chápem, znamenalo by to, že by ste museli manuálne upraviť parametre pred vykonaním akcie alebo ich odovzdať každej funkcii. To by sa stalo veľmi rýchlo chaotickým a zaujímalo by ma, či by bolo možné vytvoriť továreň na inicializáciu rôznych verzií služieb, ktoré potrebujem.

Napríklad niečo také:

function FooService(){
this.setParams = function(params){
...
}
};

function FooServiceFactory(){
return{
createService: function(name, params){
var serv = new FooService();
serv.setParams(params);
ServiceModule.service(name, serv);
}
}
};

odpovede:

0 pre odpoveď č. 1

Môžete tiež vytvárať továrne.

app.factory("InstantiateMe", [function() {
return function(params)
{
// some code
};
}]);
app.controller("Ctrl", ["InstantiateMe", function(InstantiateMe) {
var instance = new InstantiateMe({param: "value"});
}]);

V krátkosti, funkcia z výroby vráti iba to, že: továreň. Jeho návratná hodnota môže byť objekt, funkcia alebo v tomto konkrétnom prípade konštruktor. Týmto spôsobom môžete vytvoriť inštanciu viacerých požadovaných služieb.

Tu je a pekný článok na túto tému, rozpracovaním toho, čo som zhrnul, že sa vám môže zdať užitočné.