gpt4 book ai didi

javascript - 使用 Meteor 时如何正确地限定嵌套的#each Spacebars 迭代器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:23 25 4
gpt4 key购买 nike

我有这些嵌套迭代器:

<ul class='detailViewList'>
{{#each detailsCollection}}
<li id={{_id}} class='detailViewEntry {{checkboxStatus}}'>
<input type="checkbox" class='detailCheckbox'>
<b>{{detail}}</b>
<div class="btn btn-xs btn-danger" id="delete-detail">x</div>
<form class='form-inline'>
<div class="form-group">
<input type="text" id='{{_id}}' name='message' class="form-control" placeholder="message">
</div>
</form>
{{#each messagesCollection}}
{{#if isMessageForThisDetail}}
{{message.message}}
{{/if}}
{{/each}}
</li>
{{/each}}
</ul>

而且我知道我可以通过 Handlebars 路径从子模板访问父属性,来自 docs :

{{./name}} or {{this/name}} or {{this.name}}

但我需要我的助手 isMessageForThisDetail 将当前迭代的 messageCollection 的属性与当前迭代的父级 detailsCollection 进行比较。我的助手看起来像这样:

isMessageForThisDetail: function(){
var message = messagesCollection.findOne({detailId: this._id});
if(message != undefined){
return this._id == message._id;
} else {
console.log('there is no message for this detail');
}
}

但是 this._id 的上下文是消息,而不是我要与消息的字段进行比较的详细信息的 _id

最佳答案

您应该能够访问 parent data像这样:

isMessageForThisDetail: function() {
var detailId = Template.parentData(1)._id;
var message = messagesCollection.findOne({detailId: detailId});
if(message)
return this._id === message._id;
else
console.log('there is no message for this detail');
}

关于javascript - 使用 Meteor 时如何正确地限定嵌套的#each Spacebars 迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com