是否可以在angularJS中将一个服务注入另一个服务?
Answers:
是。遵循angularjs中的常规注入规则。
app.service('service1', function(){});
//Inject service1 into service2
app.service('service2',function(service1){});
感谢@simon。最好使用数组注入以避免最小化问题。
app.service('service2',['service1', function(service1) {}]);
ngmin
或关联的grunt任务。
为了避免造成任何混乱,我想也值得一提的是,如果您在childService中使用任何其他服务(例如$ http,$ cookies,$ state),那么您还需要显式声明它们。
例如
function() {
var childService = function($http, $cookies, parentService) {
// Methods inherited
this.method1Inherited = parentService.method1();
this.method2Inherited = parentService.method2();
// You can always add more functionality to your child service
angular.module("app").service("childService", ["$http", "$cookies", "parentService", childService]);
}());
您可以在孩子的数组中声明您正在使用的服务,然后将它们自动注入,或使用$ inject注释分别注入它们:
childService.$inject = ["$http", "$cookies", "parentService"];
angular.module("app").service("childService ", childService );
['service1', function(service1) {}]