2015-04-03 29 views
0

當我嘗試顯示Tabular使用的集合的計數的計數時,我只能得到每頁的總數。 這裏是我的助手:aldeed表格只計算頁面的元素

Template.audience.helpers({ 

    getAudienceCount: function(){ 
    return audiences.find({}).count(); 
    }, 
    getLikesCount: function(){ 
    count=0; 
    audiences.find().forEach(function(data){ 
     console.log(data); 
     count+=data.likes; 
    }); 
    return count.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"); 
    }}); 

調用我的模板結果那些傭工在數據表中的每個頁面顯示不同的號碼。

更新: 表格重寫訂閱集合,這是導致它只加載當前頁面元素的集合。 還沒有想出辦法解決這個問題。 另外我還沒有找到回調的方式,當表格完成呈現。

回答

1

嘗試做相同,但與global helpers

Template.registerHelper('getLikesCount', function() { 
    count=0; 
    audiences.find().forEach(function(data){ 
     console.log(data); 
     count+=data.likes; 
    }); 
    return count.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"); 
}); 
+0

仍顯示相同的值,它似乎只能找到算上當前表格頁面的數據,有沒有爲什麼內的服務器端找到一個幫手,因爲它是異步 – Genjuro 2015-04-03 15:53:54

+1

'console.log(data)'返回什麼? – Ethaan 2015-04-03 15:58:56

+0

它只顯示Tabular的第一頁(在我的例子中是10)的數據,甚至在console上的audiences.find()。count(),只返回10。 – Genjuro 2015-04-03 16:14:40