在程序定义的ng表中使用自定义角度过滤器

时间:2015-04-08 19:58:45

标签: angularjs angularjs-filter ngtable

所以我有一个以编程方式创建的表,我想将自定义过滤器仅应用于其中一个字段。我在这里创建了一个plunkr:

http://plnkr.co/edit/57rEPEYNylisoHyBysp4

因此,通过将过滤器应用于Age列,该表将返回:

Name    Age
Enos    I'm a number greater than 30: 34
Moroni  I'm a number greater than 30: 50
Jacob   I'm a number less than 30: 27
Nephi   I'm a number less than 30: 29
Enos    I'm a number greater than 30: 34
Tiancum I'm a number greater than 30: 43
Jacob   I'm a number less than 30: 27
Nephi   I'm a number less than 30: 29
Tiancum I'm a number greater than 30: 43
Tiancum I'm a number greater than 30: 43

我试过了:

<td ng-repeat="column in columns | filter:{ age: numCheck }" ng-show="column.visible" sortable="column.field">
                {{user[column.field]}}
</td>

HTML中的其他内容。我也试过改变控制器中的getData函数无济于事。

是否可以这样做?

最诚挚的问候, 朱莉

修改 所以我创造了这个更接近我想要在现实生活中做的傻瓜(基于下面的Explosion的回答):

http://plnkr.co/edit/pynm57tlQK53bCKbQjht

1 个答案:

答案 0 :(得分:1)

| filter使用过滤器过滤器,这是不同的。相反,您希望将创建的过滤器应用于您正在显示的字符串:

{{user[column.field] | numCheck}}

当然,您需要额外检查是否确实要应用过滤器。有很多方法可以做到这一点,但是根据你目前设置的所有内容的方式,我认为最简单的方法就是检查传递给numCheck的值是否为数字。