我正在创建一个factory
service
,它为我提供了像
var myApp = angular.module('panelServices', ['ngResource']);
myApp.factory('myService', [...]{
function myService(){
this.list = [];
}
myService.prototype.method1: fn() {} ,
...
myService.prototype.methodn: fn() {},
return myService;
});
我通过 DI 将myService
注入我的controllers
并使用new myService()
来实例化myService
的新实例。
我没有找到另一种方法来做到这一点,我想把service
“复制”到例如:anotherService
(基于service
是singletons
的事实})。
我的目标是让service
用于不同的models
(他们不共享数据,只有方法) -
请告诉我,如果我没有解释清楚,请提前谢谢。
答案 0 :(得分:0)
对于多个服务实例,您可以使用$injector.instantiate
myApp.factory('myService', function($injector){
function myService(){
this.list = [];
}
myService.prototype.method1: fn() {} ,
...
myService.prototype.methodn: fn() {},
return function() {
return $injector.instantiate(myService);
};
});
然后在控制器中
myApp.controller('myController', function(myService){
var service = new myService();
//other code
});
在另一个控制器中
myApp.controller('anotherController', function(myService){
var service = new myService();
//other code
});
new myService()
它总是为您提供新实例。见plunker