2017-08-10 4 views
1

私は助けが必要です。私はAngularjs 1.6を使用しています。ちょうどコントローラのdiffファイルからサービスを注入するだけです。私はこれを読む前に、 AngularJS: Service in different fileのようになります。 しかし私の場合はうまくいきませんでした。diffファイルのコンポーネントにサービスを挿入する - Angularjs 1.6

私のコードは次のなります

app.js

angular.module('myApp', ['formService', 'formLogic']) 

component.js

angular.module('formLogic',[]) 
.component('formLogic',{ 
    templateUrl: './templates/form-logic.html', 
    controller: function ($scope, formService){ 

    } 
}); 

service.js

angular.module('formService',[]) 
.service('FormService', function($http){ 

}); 

しかし、私はこのエラーを得ました: Error: $injector:unpr Unknown Provider

ありがとうございました!

+0

-HA)私が間違ったモジュールに注入し、I思えますサービスのためにupperCaseは必要ありません。 –

答えて

2
  • モジュールにプロバイダと同じ名前を付けないでください(モジュールとコンポーネント "formLogic"の両方に名前を付けないでください)。
  • "formService"モジュールを "formLogic"モジュールに依存するものとして追加します。
  • サービス "FormService"を呼び出して、 "formService"をコンポーネントコントローラに注入しようとしています。 "formService"は、定義したサービスではなく、モジュールの名前です。
+0

ありがとう!できます) –

0

異なるモジュールからcomponentservicesを注入します。 moduleを注射できます。

component.js

angular.module('anotherModule',[]) 
.component('formLogic',{ 
    templateUrl: './templates/form-logic.html', 
    controller: function ($scope, formService){ 

    } 
}); 

service.js

angular.module('anotherModule') 
.service('formService', function($http){ 

}); 

ので、NOは同様にmyAppモジュール

からformServiceformLogicを使用することができます。

app.jsあなたのような同じモジュールを使用することができます

angular.module('myApp', ['anotherModule']) // injected `anotherModule` in `myApp` modele 

mainController.js

angular.module('myApp').controller('MainCtrl', function($scope, formService) { 
    // can access `formService` from here 
}); 

OR

var app = angular.module('myApp', []); 

app.component('formLogic',{ 
    templateUrl: './templates/form-logic.html', 
    controller: function ($scope, formService){ 
     // ... 
    } 
}); 

app.service('formService', function($http){ 
    //..... 
}); 

app.controller('MainCtrl', function($scope, formService) { 
    // can access `formService` from here 
}); 
関連する問題