2014-11-23 47 views
1

*******更新********我如何實現流量收集「加載更多」按鈕

我已經問了另一個問題,使用下面的建議......但使用鐵路由器RouteController

call method in Iron-Router RouteController from Template.tmpl.helpers() not working


基本上就是我想要做的是有一個按鈕,將更多的記錄加載到我的收藏在客戶端上。我在數據庫中有一個未知數量的記錄,但我只想要最新的500個左右的數據加載到客戶端。

我試圖效仿「繼續搜索服務器」功能。我不想尋找分頁解決方案。

對此提出建議?

-------編輯添加代碼------------

這是我/server/publications.js文件:

Meteor.publish('clients', function(requestOptions){ 
    check(requestOptions, Object) 
    var options = _.extend(opts, requestOptions) 
    return Clients.find(baseQuery, options) 
}) 

這是我的/lib/router.js文件:

Router.route('/clients', { 
    name : 'clientList', 
    waitOn : function(){ 
    return Meteor.subscribe('clients', {limit:500}) 
    } 
}) 

基本上我想顯示最後500個新客戶,而且允許最終用戶「負載更多的」或「全負荷」。我不知道該怎麼做被動與訂閱...

load more button

+0

您正在尋找無盡的滾動?你能向我們展示你的第一個500的查詢嗎? – 2014-11-23 15:51:11

+0

在上面的問題中添加代碼.... – rkstar 2014-11-23 18:51:38

回答

0

附加此事件處理程序來承載你的按鈕模板:只要

Template.clients.events({ 
"click .load-more-button": function (event, template) { 
    template.skipped += 500; 
    template.subscriptions.push(Meteor.subscribe("client", { 
    limit: 500, 
    skip: template.skipped 
    })); 
} 
}); 

Template.clients.created = function() { 
    this.subscriptions = []; 
    this.skipped = 0; 
}; 

//Stop the subscriptions when template is destroyed 
Template.clients.destroyed: function() { 
    _.invoke(this.subscriptions, "stop"); 
}; 

爲您的客戶端遊標沒有設置限制,它應該可以工作,但它也意味着其他模板等加載的任何客戶端都將出現在列表中。

+0

我似乎無法得到它與此工作。我會嘗試另一種方法。謝謝你的幫助! – rkstar 2014-11-26 02:41:32

+0

好吧,我可以幫助更多,你會澄清是什麼讓你無法得到它的工作。 – 2014-11-26 11:45:52

+0

我發佈了一個新問題,因爲它不適合我詢問的這個問題。我確實使用了你的建議(或者我試圖)用我在那裏做的事情。 http://stackoverflow.com/questions/27162146/call-method-in-iron-router-routecontroller-from-template-tmpl-helpers-not-work – rkstar 2014-11-27 02:30:20