使用Meteor中的autoform将postId添加到评论中

时间:2015-07-05 11:04:32

标签: javascript node.js meteor meteor-autoform

如何在使用postId时将meteor-autoform添加到评论中?

我试过了

AutoForm.hooks({
  insertCommentForm: {
    formToDoc: function(doc) {
      doc.postId = this.formAttributes.parentContext._id;
      return doc;
    },
  }
});

AutoForm.hooks({
  insertCommentForm: {
    formToDoc: function(doc) {
      doc.postId = Template.parentData(1)._id;
      return doc;
    },
  }
});

AutoForm.hooks({
  insertCommentForm: {
    before: {
      method: function(doc) {
        doc.postId = this.formAttributes.parentContext._id;
        return doc;
      }
    }
  }
});

AutoForm.hooks({
  insertCommentForm: {
    before: {
      method: function(doc) {
        doc.postId = Template.parentData(1)._id;
        return doc;
      }
    }
  }
});

但无论我做什么,postId都是未定义的。

修改

我这样用:

<template name="comment">
  <div>
    <h1>{{_id}} {{title}}</h1>
    {{#if currentUser}}
      {{> quickForm collection="Comments" id="insertCommentForm" type="insert"}}
    {{/if}}
    ....

因此_id应该可以访问。

编辑2

现在我试过了

before: {
  insert: function(doc, template) {
    doc.postId = Template.instance().post._id;
    console.log(doc);
    return doc;
  }
},

在我使用的模板中

{{> quickForm collection="Comments" id="insertCommentForm" type="insert" post=this template="bootstrap3-inline" label-class="sr-only"}}

但帖子为undefined,因此我收到错误Uncaught TypeError: Cannot read property '_id' of undefined

1 个答案:

答案 0 :(得分:2)

改为使用

{{&GT; quickForm collection =&#34;评论&#34; ID =&#34; insertCommentForm&#34;类型=&#34;插入&#34;}}

试试

{{&GT; quickForm collection =&#34;评论&#34; ID =&#34; insertCommentForm&#34;类型=&#34;插入&#34;帖子ID = _id}}

然后尝试通过

访问帮助程序中的此值

Template.instance()。data.postId

您也可以将整个帖子对象发送到子模板,如

{{&GT; quickForm collection =&#34;评论&#34; ID =&#34; insertCommentForm&#34;类型=&#34;插入&#34;交=此}}

然后通过

完全访问该集合文档

(例如)

Template.instance()。data.post._id

这是一个通过模板访问数据的小样本

http://meteorpad.com/pad/Ke9DJnbvtsqjSHJy2/SimpleDataGivenThroughTemplates