2014-10-30 110 views
3

我创建了两个自定义过滤器,并尝试在ng-repeat中使用这两个自定义过滤器。AngularJS将自定义过滤器的结果传递给另一个自定义过滤器

如何将第一个过滤器的结果作为第二个过滤器的输入?

我在NG-重复试图为(化名),但它不工作,

<input type="text" ng-model = "ageLimit" /> 
<input type="text" ng-model = "lastSeen" /> 
<div ng-repeat = "member in lists | ageFilter:ageLimit:lists as results | LastSeenFilter:lastSeen:results"> 

错误消息

错误:[ngRepeat:badident]别名'结果| LastSeenFilter:lastSeen:results'无效---必须是不是保留名称的有效JS标识符。 http://errors.angularjs.org/1.3.0/ngRepeat/badident?p0=results%20%7C%20LastSeenFilter%3AselectLastSeen%3Aresults

+0

只需链接/管道两个过滤器就可以了,不是吗?列表中的成员| ageFilter:ageLimit | LastSeenFilter:lastSeen' – Shomz 2014-10-30 05:29:50

+0

它不工作,链接工程的第一次,但当我改变PARAMS过滤它适用于以前的结果(它应用过滤器在第一次过滤设置不是整个集合) – user2874140 2014-10-30 06:32:24

回答

0

您可以在Angular中链接过滤器。第一个过滤器的输出将作为第二个过滤器的输入,依此类推。

1

问题出在“as”。因为我有同样的问题,我看了ngRepeadDirective里面,发现那里打破了表达式的正则表达式不支持别名后的过滤器,因为可以看到here

+0

你没有解决它吗?我需要第一个过滤器进行分页(总记录,等等),并显示第二个过滤器。 – nhthai 2016-10-30 14:44:26

+0

不,没有解决方案,但对于分页是有很好的解决方案和指令,如http://brantwills.github.io/Angular-Paging/,你可以谷歌更多,分页只是一个东西学习和它的容易 – bresleveloper 2016-10-31 08:27:47

+0

是的,我知道,只是想尝试新的方式。我已经改变了另一种方式。谢谢! – nhthai 2016-11-03 02:00:58

相关问题