2016-10-14 8 views
1

私は同じ名前を持つ2つのモジュールを注入しようとしたが、コンテンツの異なる注入する同じ名前が、内容の異なる2つの以上のモジュール - angularJs

私は偶然2つの角度のライブラリを使用していますが

angular.module("main", ['moduleSameName']). 
 
controller('mainController','factoryA', 'sumService' [function(factoryA, sumService){ 
 
    this.name = factoryA.name; 
 
    this.result = sumService.sum(1,2); 
 
}]); 
 

 
//lib.js 
 

 
angular.module("moduleSameName", []). 
 
factory('factoryA', function(){ 
 
\t return { name : "giancarlo"} \t 
 
}); 
 

 

 
//lib2.js 
 

 
angular.module("moduleSameName", []). 
 
service('sumService', function(){ 
 
\t this.sum: function(a, b){ 
 
\t \t return a + b 
 
\t } \t 
 
});
同じ名前を持ちます

はありますか?

+1

いいえ、1つのインジェクタ内で同じ名前のモジュールを使用することはできません –

答えて

0

私は決してそれをテストしませんでしたが、角度の分かっている限り、両方のライブラリは同じモジュールと見なされます。したがって、それらの内部で競合する名前や複数の設定/実行がない場合は、 1つのモジュールであるかのようにアプリに

これが機能しない場合は、ソースコードを選択してソースコードの名前を変更します。

0

このStackOverflowの回答で説明されているように、2つのうちの後のほうが最初のものを上書きする可能性が非常に高いです。

AngularJS name collision in Dependency Injection?

モジュールのほとんどは言った名前で新しいモジュールを作成するために、角伝えangular.module("name", [])で始まるためです。これは、角度1.xの短期間のうちの1つであり、角度2.xの世話をして解決しています。ほとんどのモジュール作成者はこれを認識してモジュール名をよりユニークにする必要がありますが、これは必ずしもあなたが知った通りではありません。

名ぶつかり合っ周りの可能な解決策については

、あなたはこのStackOverflowの答えで行われたものをフォローできます。

AngularJS - module dependencies, naming clash

注これは少しハックかもしれないが、あなたは他を持っていない場合選択肢はオプションです。

関連する問題