2014-10-06 107 views
1

我想这一点,但它不工作:有没有办法有条件地添加过滤器内联?

{{!filterNameVar ? valueVar : valueVar | filterNameVar}} 

我需要为我的DataGrid后,如果我得到的数据网格设置的FILTERNAME为列,我应该使用它。我知道我可以在控制器中做到这一点,但到目前为止,试图找到一种方式在模板中内联。

+0

取决于您使用的是哪个版本的AngularJS。 – 2014-10-06 06:06:27

+0

@Sameer Shemna我可以切换到任何最近的稳定版本,我正在开发的项目仍处于开发阶段。 – MaxNevermind 2014-10-06 06:35:22

+0

检查此,可能的重复:http://stackoverflow.com/questions/12008580/a-ternary-in-templates – 2014-10-06 06:43:47

回答

1

解决方法

似乎在表达你不能从一个变量添加过滤器这样的:

{{'20141212'|filterNameVariable}} 

我的解决方法:

{{'20141212'|proxyFilter:filterNameVariable}} 

筛选代理代码:

app.filter(
    "proxyFilter", 
    function($filter) { 
     return function(value, filterName) { 
      if (filterName=='myFilter1') { 
       return $filter("myFilter1")(value); 
      } else if (filterName=='myFilter2') { 
       return $filter("myFilter2")(value); 
      } else { 
       return value; 
      } 
     }; 
    }); 
相关问题