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
   }
 }));

これは機能しますが、実際には 2 番目、3 番目、または 1 番目以外の投稿であっても、常にコレクション内の 1 番目の投稿の postId を取得します。

ガイドしてください。ありがとう。

4

1 に答える 1

0

collection.findOne()コレクションに挿入された最初のドキュメントを常に返します。したがって、これを行うための最も良い方法は、隠しフィールドです。フィールドを追加するだけですautoForm

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

このソリューションは、フックや特別な属性がなくても機能します。

于 2015-06-26T15:41:52.437 に答える