我有codepen。我需要在过滤器后更改 'totalItems'
的值。我试图在过滤器中这样做:
scope.totalItems = scope.filteredlist.length;
但价值没有变化。我读到我应该做这样的事情plnkr(在我的控制器内再次调用过滤器),但我不知道如何使其适应我的代码。
PS:要测试过滤器,请尝试在搜索框中输入内容,例如 'o'
。
答案 0 :(得分:1)
您可以使用语法item in items | filter:x as results
variable in expression as alias_expression
- 您还可以提供一个可选的?>别名表达式,该表达式将在应用过滤器后存储转发器>的中间结果。通常,这用于在转发器上的过滤器处于活动状态时呈现特殊的>消息,但过滤的结果集为>空。例如:
item in items | filter:x as results
会将>重复项目的片段存储为结果,但只有在通过>过滤器处理完项目后才会存储。
然后,您可以使用{{results.length}}
来获取已过滤结果的长度。
https://code.angularjs.org/1.3.10/docs/api/ng/directive/ngRepeat
在更详细地查看笔之后,只需在代码中进行一行更改即可获得示波器中的totalItems值。在您的分页过滤器中,您正在执行
scope.totalItems = scope.filteredlist.length;
但是您想要的长度实际上是input
,所以如果您将其更改为此,那么totalItems
将具有您期望的值
scope.totalItems = input.length;
我不喜欢这个解决方案,因为你最终会在分页过滤器中污染其他范围,但它会给你答案。 (我现在需要更多时间来提出一个更清洁的解决方案)