这是我的简单过滤器表。
<tr class="text-center" ng-repeat="ticket in filteredTickets = (vm.tickets | orderBy : vm.propertyName : vm.reverse | filter : vm.search | limitTo:vm.itemsPerPage:vm.itemsPerPage*(vm.currentPage-1))">
还有搜索输入
<input class="form-control w25 pull-right" ng-change="vm.searchChanged()" type="text" ng-model="vm.search" placeholder="Search..." />
然后我创建了一个假td来获取filteredTickets.length的值(因为如果您知道一种告诉我的方式,那么我就无法在范围内获取此值)
<td class="hidden" id="filteredTicketLength">{{filteredTickets.length}}</td>
基本上,它的innerText将具有过滤后的票证长度。
现在问题来了。当我在输入搜索中输入内容时,totalItems不会更新,直到我写/删除了另一个字符。基本上,我写/删除另一个字母后会显示正确的消息
<span class="pull-left">Showing {{filteredTickets.length}} tickets of {{vm.totalItems}} found.</span>
vm.searchChanged = function () {
var filteredTickets = document.getElementById('filteredTicketLength');
console.log(filteredTickets);
if(filteredTickets !== null)
vm.filteredTicketLength = filteredTickets.innerText;
vm.totalItems = vm.filteredTicketLength;
};
如何写出显示过滤后找到的x个项目中的x个的消息?就像在更新filterTicketLength之前正在运行searchChanged函数。