我正在尝试撰写基本的#34;网站讨论和分享#34;使用Meteor和MongoDB的应用程序。我对编码非常陌生,这只是为了我自己的启发。到目前为止,我已经写了这篇文章,我可以在与共享网站相关联的各个页面上发表评论,但每个网站页面上都会显示每条评论,无论评论是在哪个页面上进行的。我已经这样做,以便评论保存与siteId作为他们自己的Id所以我认为这将是容易的,但经过5个小时的摆弄和谷歌搜索,我没有取得任何进展。我将在下面提供相关的代码段,非常感谢您的帮助!
在main.html中我有这个模板......<template name="discussSite">
<h3>Discussing: {{url}} </h3>
{{> addCommentForm}}
{{#each comments}}
<div class="comment" id={{siteId}}>
<h4>{{text}}</h4>
<h5>by {{createdBy}} on {{createdOn}}</h5>
<h6>id: {{siteId}}</h6>
</div>
{{/each}}
</template>
在我的events.js中我有......
Template.addCommentForm.events({
'click .js-add-comment':function(event){
var comment_text = $('#comment_input').val();
var user = 'anonymous person';
var site = this;
if (Meteor.user()){
user = Meteor.user().emails[0].address
}
var comment = {"text":comment_text,
"siteId":site._id,
"createdOn":new Date(),
"createdBy":user};
Comments.insert(comment);
return false;
}
});
最后,在我的helpers.js中(我知道这是问题的主要部分。我不太了解如何使用.find({})命令和过滤器......
Template.discussSite.helpers({
'comments':function(siteId){
return Comments.find();
},
});
总而言之,当我在网站#1上发表评论时,它会显示,但问题是网站#2和网站#3下显示相同的评论。如何将其附加到创建它的网站并将其保留在那里?
非常感谢您的帮助!
答案 0 :(得分:0)
您的助手需要通过传入此siteId:
来过滤这样的数据Template.discussSite.helpers({
'comments':function(siteId){
return Comments.find({"siteId":siteId});
}
});