【问题标题】:how to know which docs are sent to the client in meteor如何知道流星中将哪些文档发送给客户端
【发布时间】:2015-02-28 12:05:02
【问题描述】:

我有一个基于startlimit 发送有限数量记录的出版物

Metero.publish("posts",function(start,limit){
 return Posts.find({},{"start":start,"limit":limit});
});

我正在订阅autorun函数中的发布函数。

我的问题是我在客户端中已经很少有 posts 集合的记录被另一个表使用

当前发布函数可能有客户端已经存在的记录

我只想知道当前发布函数发送的记录。

也欢迎任何黑客或变通方法。

编辑 我想显示那些在表中发布的记录,因为我在客户端已经有一些数据了很难过滤掉发布功能发送给客户端的记录

【问题讨论】:

标签: meteor publish-subscribe


【解决方案1】:

试试这个发布功能,

Meteor.publish('posts', function(limit) {
  if (limit > Posts.find().count()) {
    limit = 0;
  }

  return Posts.find({ },{limit:limit});
});

现在在 client.js

Template.Posts.created = function() {
  Session.setDefault('limit', 10);
  Tracker.autorun(function() {

    Meteor.subscribe('getPosts', Session.get('limit'));
  });
}

现在你可以使用这个助手了,

Template.Posts.helpers({
  posts: function() {
    return Posts.find({ }, { limit: Session.get('limit') });
  }
});

并像任何普通助手一样在每个助手上使用它

<template name="Posts">
{{#each posts}}
{{namePost}} <!-- or whatever register on the posts mongo document -->
{{/each}}
<!-- button to load more posts -->
<button class="give-me-more">Click for more posts </button>
</template>

现在,如果您想将帖子数量增加 10 x 10,请使用此功能

incrementLimit = function(inc=10) {
  newLimit = Session.get('limit') + inc;
  Session.set('limit', newLimit);
}

并在这样的点击事件上调用它

Template.Posts.events({
  'click .give-me-more': function(evt) {
    incrementLimit();
  }
});

现在,每次创建帖子模板时,您使用此帮助程序的每个模板只会获得 10 个帖子,并且每次单击按钮时加载 10 次

这是来自Gentlenode的相同代码

我刚刚添加了 HTML,希望对您有所帮助

【讨论】:

    【解决方案2】:

    您是否考虑过将其记录到控制台?

    Metero.publish("posts",function(start,limit){
     var currentPosts = Posts.find({},{"start":start,"limit":limit});
     console.log(currentPosts);
     return currentPosts;
    });
    

    【讨论】:

    • 不,我想显示那些在表中发布的记录,因为我在客户端已经有一些数据了很难过滤掉发送的记录
    【解决方案3】:

    我最终将“客户端集合”与不同表的自定义发布一起使用

    【讨论】:

    • 只需使用用于在服务器上创建发布的相同查询查询客户端集合即可完成:stackoverflow.com/a/13076752/259521
    • @malhal,不,没那么简单。如果相同的记录符合客户端的两个发布功能怎么办,在这种情况下,记录数将超过所需的数量,对吗?
    猜你喜欢
    • 2018-09-17
    • 2017-01-12
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多