我的刊物根据start
和limit
发送有限数量的记录
Metero.publish("posts",function(start,limit){
return Posts.find({},{"start":start,"limit":limit});
});
我正在订阅autorun
函数中的发布函数。
我的问题是我在客户端中已经有很少的posts
集合记录被另一个表使用
当前发布功能可能包含已存在于客户端
中的记录我只想知道当前发布函数发送的记录。
欢迎任何黑客或工作场所。
修改 我想显示那些在表中发布的记录,因为我已经在客户端中有一些数据。它需要过滤掉发布函数发送给客户端的记录
答案 0 :(得分:2)
试试这个发布功能,
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个帖子,并且每次单击按钮时加载10x
中的代码相同我刚刚添加了HTML,希望对您有所帮助
答案 1 :(得分:0)
您是否考虑过将其记录到控制台?
Metero.publish("posts",function(start,limit){
var currentPosts = Posts.find({},{"start":start,"limit":limit});
console.log(currentPosts);
return currentPosts;
});
答案 2 :(得分:-1)
我最终使用了&#39;客户端集合&#39;使用不同表的自定义出版物