我在angularjs中编写了以下服务,如何/如何将其更改为工厂?而且,当使用工厂而不是服务时,有哪些优点/差异?
angular.module('helloApp').service('popupService', function() {
var popup;
var setter = function(parameter) {
popup = parameter;
};
var getter = function() {
return popup;
};
return {
setter: setter,
getter: getter
};
});
提前致谢
答案 0 :(得分:1)
要更改它,首先应该在模块中将其声明为工厂
child.material.normalMap.wrapS = child.material.normalMap.wrapT = THREE.RepeatWrapping;
这个问题(工厂VS服务)是Stackoverflow中最受欢迎的问题之一:AngularJS: Service vs provider vs factory
服务
语法:module.service('serviceName',function);
结果:何时 声明serviceName作为注入参数,您将被提供 有一个函数的实例。换句话说,新的 FunctionYouPassedToService()。
工厂
语法:module.factory('factoryName',function);
结果:何时 声明将factoryName作为注入参数,您将被提供 使用通过调用函数引用返回的值 传递给module.factory。
您也可以在Angular网站上找到官方文档: