Это моя простая таблица фильтров.
<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 для получения значения FilterTickets.length (потому что я не могу получить значение этого в области видимости, если вы знаете способ, скажите мне)
<td class="hidden" id="filteredTicketLength">{{filteredTickets.length}}</td>
в основном внутренний текст этого будет иметь длину билетов после фильтрации.
Теперь возникает проблема. Когда я что-то набираю в поиске ввода, 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, найденных после фильтрации? Это похоже на то, что функция searchChanged запускается до обновления FilterTicketLength.