に同じ依存関係の問題が含まれます。しかし、モジュールととbの両方は、モジュールcによって異なります。私が理解から、以下私は例のモジュール<strong></strong>と<strong>B</strong>のための別のモジュールを含む<strong>アプリ</strong>モジュールを持ってangularjs
var app = angular.module('app', ['a', 'b']);
app.controller('AppCtrl', function(Containner) {
console.log(Containner); //Avaiable
});
var a = angular.module('a', ['c']);
a.controller('ACtrl', function(Containner) {
console.log(Containner); //Avaiable
});
var b = angular.module('b', ['c']);
b.controller('BCtrl', function(Containner) {
console.log(Containner); //Avaiable
});
var c = angular.module('c', []);
c.factory('Containner', function() {
return {
test: 'test'
}
});
を参照してください、あなたは一度だけモジュールを含める必要があり、その後、あなたも、あなたがその依存関係としてそれを含まない他のモジュールにアクセスすることができます。
var app = angular.module('app', ['a', 'b']);
app.controller('AppCtrl', function(Containner) {
console.log(Containner);
});
var a = angular.module('a',[]);
a.controller('ACtrl', function(Containner) {
console.log(Containner); //YOU CAN STILL GET IT
});
var b = angular.module('b', ['c']);
b.controller('BCtrl', function(Containner) {
console.log(Containner);
});
var c = angular.module('c', []);
c.factory('Containner', function() {
return {
test: 'test'
}
});
モジュールAは依存性としてCを持っていませんが、依然としてCのサービスにアクセスできます。つまり、ある場所にCを含める限り、角度アプリケーションにすべて含まれている限り、他のモジュールでも使用できます。
各モジュールは開発者に独自の依存関係を明確に伝えるので、私は最初のコードを好む。しかし、あなたは一度含める必要があり、それは他の場所で利用可能になるので、冗長であるようです。この状況のベストプラクティスと、シーンの背後にある重複した依存関係をどのように処理するか。
'app.js'に依存性を含めると、完全なプロジェクトで利用できるようになります。 1つのファイルだけに依存関係を追加した場合は、その特定のファイルに対してのみ利用できるので、必要なときに追加する必要があります。アプリケーションのメインファイル、つまりapp.jsに追加することをお勧めします。あなたのシナリオでは、 'a'、' b'、 'c'をある場所に' app.js'だけ追加して、お互いに依存関係を使うことができます。 –
@ojuskulkarni私は、 app)を常に使用し、直接使用するモジュールのみを含めます。これは、この場合、アプリケーションモジュールがaとbを使用し、cではなくcを使用する場合は、aとbをリストしますが、cは依存関係ではありません。モジュールaがモジュールcを使用している場合は、モジュールcなどをリストする必要があります。モジュール化する場合は、モジュール化し、モジュールを移植性と再利用性にする必要があります。 – plong0