我遇到了我實施的分頁問題。分頁工作基於服務器端發佈skip &限制過濾器。流星分頁問題
問題#1。 如果我執行特定的用戶搜索,那麼第一頁將是空白的。
在這種狀態下跳過被設置爲0,上限爲總20
如果我執行查找()。取()我得到的20個元素,但他們都是爲了一個不同的用戶。
這是一個非常奇怪的行爲。 服務器雙面發佈
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.html中 https://pastebin.com/4uMVFsNG
不知道如何使它所以,當我執行搜索一個特定的用戶我得到的所有20名導致該用戶,下一頁給我下20個元素,沒有顯示我剛纔看到的20個元素。
你的代碼是真的很凌亂(對不起,該評論)。如果你允許我,我可以與你分享我的分頁代碼,這對於全球性的serach來說非常簡單。所有工作都在服務器端發佈,非常高效且非常強大。 –
不要使用會話進行分頁。像我在下面的代碼中那樣使用模板reactive-vars。如果您無法理解我的代碼,請告訴我,我將簡要解釋。 –