2013-07-23 34 views
0

我的應用程序依賴於兩個過濾器的應用,如Angularjs過濾壓倒一切和模塊依賴注入

var app = angular.module('MyApp',['Filter1','Filter2']); 

其中兩個應用程序有過濾器具有相同名稱的

var filterapp1 = angular.module('Filter1',[]); 
filterapp1.filter('replace',function(){return function(input){ 
      return input + " from Filter1 app"; 
}}); 

var filterapp2 = angular.module('Filter2',[]); 
filterapp2.filter('replace',function(){return function(input){ 
      return input + " from Filter2 app"; 
}}); 

現在,在我的應用程序,如果我想從filterapplication1中引用過濾器,我該怎麼辦?

在我的HTML我有一些像

{{'Hello World' | replace }} 

其中輸出應該是「從過濾器1的應用程序Hello World」的,但我得到的「Hello World從過濾器2應用程序」。如何覆蓋過濾器?或做的過濾器按順序覆蓋他們被注入?如何克服這一點?

+0

JsFiddle已添加。 http://jsfiddle.net/yesoreyeram/qDFsB/ –

回答

3

In Angular「last one wins」。所以如果你想使用這兩個過濾器,你應該用不同的名稱。例如,過濾器('module1.replace',....)

+0

感謝valentyn。但是如何用多個模塊實現大型應用程序。 –

+1

在我的練習中,我們開始命名的時候牢記AngularJS有'最後勝利'原則,所以我們只是在模塊前綴模塊名稱中命名了所有內容。 –

+0

我希望這些問題能在Angular2版本中解決。 –