あるサービスをangularJSの別のサービスに注入することは可能ですか?
あるサービスをangularJSの別のサービスに注入することは可能ですか?
回答:
はい。anglejsの通常のインジェクションルールに従います。
app.service('service1', function(){});
//Inject service1 into service2
app.service('service2',function(service1){});
@simonに感謝します。問題の縮小を避けるために、アレイインジェクションを使用することをお勧めします。
app.service('service2',['service1', function(service1) {}]);
ngmin
不平を言うタスクを使用することもできます。
混乱を避けるために、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) {}]