我是 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 文件中并从那里引用它吗?将它放在工厂的一个好处是它很容易在测试中模拟它,因为它会被注入到使用它的地方。Angular 中是否有其他机制可以替代使用?