/ / AngularJSでサービスを作成するファクトリを作成できますか? -angularjs、angularjs-service、angularjs-factory

AngularJSでサービスを作成するためのファクトリを作成できますか? - angularjs、angularjs-service、angularjs-factory

使用したいこのサービスはありますが、私のアプリケーションの一部が同じサービスを必要としますが、内部で使用するために異なるパラメーターが必要です。私が理解する限り、サービスは常に同じインスタンスを参照するため、アクションを実行する前にどこでもパラメーターを手動で編集するか、すべての関数に渡す必要があります。これは非常に速く面倒になり、必要なサービスのさまざまなバージョンを初期化するためのファクトリーを作成できるかどうか疑問に思っていました。

たとえば、次のようなものです。

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

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

回答:

回答№1は0

ファクトリも作成できます。

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

要するに、ファクトリー関数はそれだけを返します: 工場。その戻り値は、オブジェクト、関数、またはこの特定の場合ではコンストラクターです。これにより、目的のサービスの複数のインスタンスをインスタンス化できます。

がここにあります この件に関する素敵な記事、私が要約したことについて詳しく説明します。