私は AngularJS の初心者で、 と の概念と違いを理解し始めたfactory
ところservice
ですcontroller
。私が理解しているように、 afactory
は、注入できる「値オブジェクト」を返すために使用されます。私が見たほとんどの例は、次のようなことをしています:
angular.module('module.factories', function() {
factory('FactoryObject', function() {
return {
someFunction: function(someParam) {};
someOtherFunction: function(someOtherParam) {});
};
});
});
私のcontroller
では、このオブジェクトを使用できるようにしたいのですが、コントローラーのイベント/アクションに応じて再初期化できるため、コントローラーで初期化/インスタンス化したいと考えています。したがって、代わりにファクトリーでコンストラクター関数を返すことができるかどうか疑問に思っていましたか?
angular.module('module.factories', function() {
factory('FactoryObject', function() {
function FactoryObject(initParam) {
}
FactoryObject.prototype.someFunction = function() {};
return FactoryObject;
});
});
これは角度のある工場に適したパターンですか? それとも、このようなカスタム オブジェクトにファクトリを使用するのは「やり過ぎ」ですか? それをライブラリjsファイルに含めて、代わりにそこから参照する必要がありますか? ファクトリに配置する利点の 1 つは、使用される場所に注入されるため、テストで簡単にモックできることです。代わりに使用できる Angular の他のメカニズムはありますか?