Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs过滤器覆盖和模块依赖项注入_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs过滤器覆盖和模块依赖项注入

Javascript Angularjs过滤器覆盖和模块依赖项注入,javascript,angularjs,Javascript,Angularjs,我的应用程序依赖于两个过滤器应用程序,如 var app = angular.module('MyApp',['Filter1','Filter2']); 两个应用程序都有同名的过滤器 var filterapp1 = angular.module('Filter1',[]); filterapp1.filter('replace',function(){return function(input){ return input + " from Filter1

我的应用程序依赖于两个过滤器应用程序,如

 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 }} 

其中输出应该是“Hello World from Filter1 app”,但我得到的是“Hello World from Filter2 app”。如何覆盖过滤器?或者过滤器是否按注入顺序覆盖?如何克服此问题?

在“最后一个胜出”中。因此,如果您想同时使用这两个过滤器,则应使用不同的名称。例如,过滤器('module1.replace',..)

在角度“最后一个胜出”中。因此,如果您想同时使用这两个过滤器,则应使用不同的名称。例如,过滤器('module1.replace',…)

感谢Valentin。但是,对于具有多个模块的大型应用程序,这是怎么可能的呢?在我的实践中,我们开始命名时牢记AngularJS有“最后的胜利”原则,所以我们只是将模块内的所有内容命名为模块名称的前缀。谢谢Valentin。在我的实践中,我们开始命名时牢记AngularJS具有“最后的胜利”原则,所以我们只是将模块中的所有内容命名为module name.JsFiddle前缀。JSFIDLE补充道。