3

如果没有自动表单,通常情况下,我们将执行以下操作来提交评论:

评论提交.js

 'submit form': function(e, template) {
     e.preventDefault();

     var $body = $(e.target).find('[name=body]');
     var status = {
       body: $body.val(),
       postId: template.data._id
     };

我们可以将 postId 注入到每个评论中。

如何使用 Autoform 做到这一点?

我在评论集附近尝试过这个:

 Comments = new Mongo.Collection('comments');

 Comments.before.insert(function (userId, doc) {
   doc.postId = Posts.findOne()._id; 
 });



 Comments.attachSchema(new SimpleSchema({
   body: {
     type: String,
     autoform: {
       'label-type': 'placeholder',
       placeholder: 'Add your comment…'
     }
   },
   postId: {
     type: String
   }
 }));

这是工作,但它总是得到集合中第一个帖子的 postId,即使它实际上是第二个、第三个或不是第一个帖子。

请指导。谢谢。

4

1 回答 1

0

collection.findOne()总是返回插入到集合中的第一个文档。所以我想到的最好的方法是隐藏字段。只需将一个字段添加到您的autoForm

{{ > afQuickField name="postId" value=_id style="display: hidden;" }}

此解决方案无需任何挂钩或特殊属性即可工作。

于 2015-06-26T15:41:52.437 回答