例如,假设我的帖子使用以下字段锁定了密码(有些可能没有密码):
{
_id: String
password: String,
body: String,
createdAt: Date
}
带密码的帖子只发布了一些元数据,没有密码的帖子已完全发布:
Meteor.publish('locked_posts', function() {
return Posts.find({ password: { $exists: true } }, { fields: { createdAt: 1 } });
});
Meteor.publish('public_posts', function() {
return Posts.find({ password: { $exists: false } });
});
视图如下所示:
{{ #each posts }}
{{ #if password }}
<input type="password">
{{ else }}
<div>{{ body }}</div>
{{ /if }}
{{ /each }}
在模板中,用户应该能够输入帖子的密码并获得该帖子的正文:
那么我是否会重新发布输入密码的单个帖子以及所有字段,并刷新模板以显示此新帖子?
答案 0 :(得分:1)
我建议您更改此发布以将密码包含为输入参数(可能已加密?)。
Meteor.publish('locked_posts', function(id, password) {
check(id, String);
check(password, String);
return Posts.find({_id: id, password: password }, { fields: { createdAt: 1 } });
});
然后,您可以从您希望提供其他字段的客户端代码中调用Meteor.subscribe('locked_posts', postId, somePassword)
。