如何在过滤后改变数组变量——Angular Ui分页

How to change array variable after filter - Angular Ui Pagination

本文关键字:变量 Angular Ui 分页 数组 改变 过滤      更新时间:2023-09-26

我有这个codependency。我需要在过滤器之后更改 'totalItems' 的值。我试着在过滤器中这样做:

scope.totalItems = scope.filteredlist.length;

但是值不会改变。我读到我应该做这样的事情plnkr(在我的控制器内再次调用过滤器),但我不知道如何使它适应我的代码。

PS:为了测试过滤器,试着在搜索框中输入一些东西,如 'o' .

您可以使用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;

我不太喜欢这个解决方案,因为你最终会污染分页过滤器中的其他一些作用域,但它给了你答案。(我只是需要比现在更多的时间来想出一个"清洁方案"。解决方案)