我试图在客户端创建过滤机制。我只发布了尚未删除的藏品; { removed: false }
。然后在客户端上,我有时想要添加第二个标准{tag: 'Sports'}
。不幸的是,我的代码不起作用。我假设我的订阅参数会扩展发布的标准。也许我错了?
服务器:
Meteor.publish('posts', function() {
return Posts.find({ removed: false });
});
客户端:
Meteor.subscribe('posts', { tag: 'Sports' })
答案 0 :(得分:1)
服务器:
Meteor.publish('posts', function(query) {
// if passed query is NULL, then query = {}
query = query || {};
// we need to be sure that always we filter by {removed : false}
query.removed = false;
return Posts.find(query);
});
客户端:
Meteor.subscribe('posts',{tag:'Sports'});
您的发布功能很好,您在客户端进行第二次过滤。
客户端:
Meteor.subscribe('posts');
第二个标准可以在Template helper中使用:
Template.template_name.posts = function(){
return Posts.find({tag:'Sports'});
}
你这样使用它:
<template name="posts">
{{ posts }}
</template>