我在另一个帮助器中使用帮助器。我试图传递一个值'post_id',我从'show_post'帮助器动态获取。我想传递它然后在查询中使用它将一组结果返回给帮助器。由于某种原因,应用程序崩溃。有人可以指导我完成这件事。
{{#each show_post}}
{{posttext}}
{{postedBy}}
{{#each show_comment({{post_id}}) }}
//<--- i am passing the value to helper like this.
<span> <p>{{postedBy}}: <h5>{{commenttext}}</h5>{{createdAt}}</p></span>
{{/each}}
{{/each}}
Template.display_block.helpers({
show_post(){
return PostComment.find({parent: 0},{sort: {createdAt: -1}});
}
});
Template.display_block.helpers({
show_comment(e){
var t1 = e;
var now = PostComment.find({post_id:{$regex:new RegExp(’^’ + t1)}});
return now;
}
});
第一个帮助器生成一个数组(Mongo Db结果)。我想在下一个帮助器中使用这个数组的元素(它是动态的)。所以我想使用一个变量,它可以保存第一个帮助器的数组元素的值,然后将它传递给下一个帮助器。在第二个帮助器中,我想传递此变量并使用此变量对Mongo查询中的结果进行排序。我是新手,所以我无法理解这个实例是怎样的
答案 0 :(得分:1)
首先,您不需要在双花括号或parens中包装辅助参数。
{{#each show_comment post_id}}
会做你需要的。
你也让自己的生活变得比必要的复杂一点。您可以在代码中通过this
使用当前数据上下文。还不清楚为什么你使用正则表达式,除非你将某些内容连接到帖子_id
。
这使您可以简化为:
HTML:
{{#each show_post}}
{{posttext}}
{{postedBy}}
{{#each show_comment}}
<span><p>{{postedBy}}: <h5>{{commenttext}}</h5>{{createdAt}}</p></span>
{{/each}}
{{/each}}
JS:
Template.display_block.helpers({
show_comment(){
return PostComment.find({post_id: this._id);
}
});