簡體   English   中英

如何在同一模板上顯示項目總數和項目限制列表

[英]How to show the total count of items and a limit list of items on a same template

我的頁面上有兩個部分。

第一部分的項目列表有限。 第二部分具有項目總數(recordsCount)。

服務器添加新項目時,我看到項目列表已更新,但總計數具有舊值。

Tracks = new Mongo.Collection('tracks')

客戶:

Meteor.subscribe('tracks')

Meteor.call('records', function(err, data) {
    Session.set('_records', data)
})

Template.tracks.helpers({
    tracks: function() {
        return Tracks.find()
    },
    recordsCount: function() {
        return Session.get('_records')
    }
})

服務器:

Meteor.publish('tracks', function() {
    return Tracks.find({}, {limit: 100})
})

Meteor.methods({
    records: function() {
        return Tracks.find({}).count()
    }
})

var CronManager = new Cron(10000)
CronManager.addJob(1, function() {
    Tracks.insert({filed1: 'test'})
})

如果您只是想有效地將​​計數引入您的應用程序,請查看publish-counts軟件包。

Meteor.publish('posts', function(author) {
  var cursor = Tracks.find(...);
  Counts.publish(this, 'tracks-count', cursor, {nonReactive: true});
});

nonReactive選項僅按需發送計數。 如果您實際上不需要實時計數,這將很有用,因為大多數應用程序每隔幾秒鍾就可以完成更新。 這樣可以節省大量CPU。

Template.tracks.helpers({
  tracks: function() {
    return Counts.get('posts-count')
  }
});

Hattip從《 防彈流星,計數文件》中獲得了Arunoda出色的一章。

我已經使用publish-counts包研究了該解決方案。 就我而言,這是非常沉重的包裹。 它一直在加載CPU。 我已經替換了服務器端代碼,以使用帶有count字段的集合。

共同:

Counter = new Mongo.Collection('count')

服務器:Meteor.Publish('count',function(){return Counter.find()})

if(Counter.find().count() === 0) Counter.insert({count: Tracks.find().count()})
var CronManager = new Cron(10000)
CronManager.addJob(1, function() {
    Counter.update({}, {$inc: {count: 1}})
    Tracks.insert({filed1: 'test'})
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM