有没有办法有条件地添加内联过滤器?

时间:2014-10-06 05:45:09

标签: angularjs angularjs-filter

我试过这个,但它不起作用:

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

我需要它为我的dataGrid,如果我从dataGrid设置获得一个filterName我应该应用它。我知道我可以在控制器中执行此操作,但到目前为止试图找到一种方法在模板中内联。

1 个答案:

答案 0 :(得分: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;
            }
        };
    });