/ / Мога ли да създам фабрика за създаване на услуги в AngularJS? - Angularjs, Angularjs-Service, Angularjs-фабрика

Мога ли да създам фабрика за създаване на услуги в AngularJS? - Angularjs, Angularjs-Service, Angularjs-фабрика

Имам тази услуга, която бих искала да използвам, но би могласе случи, че някои части от приложението ми изискват същата услуга, но с различни параметри за вътрешно ползване. Тъй като услугите винаги се отнасят до същата инстанция, доколкото я разбирам, това означава или ръчно да се налага да редактирате параметрите навсякъде, преди да извършите действие, или да ги предадете на всяка функция. Това щеше да се обърка много бързо и се чудех дали е възможно да се създаде фабрика, за да се инициализират различните версии на услугата, от която се нуждая.

Нещо като това, например:

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

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

Отговори:

0 за отговор № 1

Можете да създадете и фабрики.

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

Накратко, фабричната функция връща точно това: фабрика. Връщащата се стойност може да бъде обект, функция или, в този конкретен случай, конструктор. По този начин можете да инстанциирате няколко копия на желаната от вас услуга.

Тук е хубава статия по темата, като разработих това, което аз обобщих, че може да се окаже полезно.