angularアプリでサービスを定義する2つのファイルがありますが、ディレクティブで両方を使用しようとすると、どちらのディレクティブでもサービスプロバイダーが見つからないというエラーが表示されます。 2番目に定義します。1つのサービスが他のサービスを上書きしているようです。service2.jsのモジュール定義をmyapp.services2に変更すると、機能します。この方法で同じモジュールに複数のファクトリを追加できると思います。誰かが指摘できますか私が間違っていることを出しますか?
service1.js:
var services = angular.module('myapp.services',[]);
services.factory('Service1', function() {
// service code
});
service2.js:
var services = angular.module('myapp.services',[]);
services.factory('Service2', function() {
// service code
});
mydirective.js:
angular.module('myappdirective', []).directive('myapp', ['Service1', 'Service2',
function(service1,service2) {
// directive code
}]);
これはドキュメントからです:
Angle.module( 'myModule'、[])を使用すると、モジュールmyModuleが作成され、myModuleという名前の既存のモジュールが上書きされることに注意してください。 angular.module( 'myModule')を使用して、既存のモジュールを取得します。
これは可能ですが、エラーが発生しやすいため、お勧めしません
すでに行っていることに小さな変更を加えます
Service1.js以外の他のファイルでモジュール変数を再宣言したり、モジュール定義を独自のファイルに配置したりして、これらのJSファイルをModule.js、services.js、directive.jsの順に含めないでください。働くでしょう