Я подумал, что отметка лучшего варианта ответа такая же, как и при голосовании. извините: D
я проблемы с нумерацией страниц, которые я реализовал. Разбивка на страницы работает на основе пропущенного на сервере фильтра пропуска и ограничения.
Выпуск № 1. Если я выполню поиск конкретного пользователя, самая первая страница будет пустой.
В этом состоянии пропуск установлен на 0, предел всегда равен 20.
Если я выполняю find (). Fetch (), я получаю 20 элементов, но все они для другого пользователя.
Выпуск № 2 Я иду на следующую страницу (пропустить + 10) дает мнееще несколько элементы
Делать это снова даетдаже больше Результаты
и, наконец, не хватает данных, и перейти к следующей страницепросто удаляет 10 результатов, а 10 показывается
Это очень странное поведение. Серверная публикация
Meteor.publish('overtime', function(opt){
if (!Roles.userIsInRole(this.userId, 'admin')) {
return Overtime.find({userId: this.userId}, opt);
} else {
return Overtime.find({}, opt);
}
});
Клиентская подписка
var defaultSkipStep = 10;
var defaultLimit = 20;
Template.triphtml.onCreated(function(){
var instance = this;
Session.set('limit',defaultLimit);
instance.autorun(function(){
instance.subscribe('overtime', {skip:(Session.get('overSkip')||0), limit:(Session.get('limit')||defaultLimit), sort: {createdAt: -1}});
instance.subscribe('trips', {skip:(Session.get('tripSkip')||0), limit:(Session.get('limit')||defaultLimit), sort: {createdAt: -1}});
});
Событие клика на следующей странице
"click .nxtpage_over": function(event, template){
Session.set('overSkip', (Session.get('overSkip') || 0) + defaultSkipStep);
Session.set('limit', 20);
},
Отправить событиеhttps://pastebin.com/btYCSQBD
Запрос, который видит пользователь main.js (клиент)
main.htmlhttps://pastebin.com/4uMVFsNG
Любая идея, как сделать так, чтобы при выполнении поиска для определенного пользователя я получал все 20 результатов только для этого пользователя, и на следующей странице я получил СЛЕДУЮЩИЕ 20 элементов, а не те из 20, которые я только что видел.