我有这个codepen。我需要更改过滤器后的值'totalItems'
。我试图在过滤器内部这样做:如何更改过滤器后的数组变量 - 角度Ui分页
scope.totalItems = scope.filteredlist.length;
但值不会改变。我读到我应该这样做plnkr(在我的控制器中再次调用过滤器),但我不知道如何使其适应我的代码。
PS:要测试过滤器,请尝试在搜索框中键入内容,例如'o'
。
我有这个codepen。我需要更改过滤器后的值'totalItems'
。我试图在过滤器内部这样做:如何更改过滤器后的数组变量 - 角度Ui分页
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;
值我不喜欢这个解决方案,因为你最终会在分页过滤器中污染其他一些范围,但它会给你答案。 (我只是需要更多的时间,我现在想出一个“更清洁”的解决方案)
好的,很好。但我需要访问控制器内部的变量'results'。有可能的? – robe007
是的,您可以访问控制器中的变量'results'。我试过了,但它暴露了一些其他问题。请参阅我的更新以了解如何让您的'totalItems'变量起作用。 – JoseM
感谢您关注我的问题,但'scope.totalItems = input.length;'不是我想要的,因为最初我需要'scope.totalItems = scope.filteredlist.length;'也许您可以直接看到我的代码笔。 – robe007