您如何获得初始出版物之外的文件?

时间:2015-09-11 21:57:15

标签: meteor

例如,假设我的帖子使用以下字段锁定了密码(有些可能没有密码):

{
  _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 }}

在模板中,用户应该能够输入帖子的密码并获得该帖子的正文:

那么我是否会重新发布输入密码的单个帖子以及所有字段,并刷新模板以显示此新帖子?

1 个答案:

答案 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)