Javascript 在每个循环中的给定迭代中在Handlebarsjs中推送html标记
我的channel.json有7个信息对象,它们在hb中被迭代,我想在它们之间加上一个日期。换句话说,在第三次迭代之后,在循环之间,如何使用手柄推送html标记以显示?最终我想把它推进一个循环。我希望在不修改.json数据的情况下完成这项工作 我的index.handlebar中有以下代码Javascript 在每个循环中的给定迭代中在Handlebarsjs中推送html标记,javascript,node.js,express,handlebars.js,Javascript,Node.js,Express,Handlebars.js,我的channel.json有7个信息对象,它们在hb中被迭代,我想在它们之间加上一个日期。换句话说,在第三次迭代之后,在循环之间,如何使用手柄推送html标记以显示?最终我想把它推进一个循环。我希望在不修改.json数据的情况下完成这项工作 我的index.handlebar中有以下代码 <div class="container"> <h5>{{msg}}</h5> {{#each channelData}} <
<div class="container">
<h5>{{msg}}</h5>
{{#each channelData}}
<div class="card-panel grey lighten-5 z-depth-1">
<div class="row valign-wrapper">
<div class="col s1">
<img alt="" class="circle responsive-img align" src="{{subjectPhotoUrl}}">
</div>
<div class="col s5">
<div>
<h5 class="title">{{title}}</h5>
<br/>
<p class="description">{{description}}</p>
</div>
</div>
<div class="col s3">
<div class="align">
<img alt="" class="circle responsive-img" src=
"{{instructorPhotoUrl}}"> <span class="instructor">{{instructorName}}</span>
</div>
</div> {{/each}}
我还想知道,是否有可能操纵元素,使7个容器中的2个容器靠得很近,边缘为0,背景为红色?这意味着只为两个独立的容器操作css,其中一个容器尚未创建,并且仍在对它们进行迭代
另外,如果我添加{{msg}}标记来代替{{title}标记,那么如何才能使{{msg}显示在循环内部呢 您可以利用循环
@index
中引用当前索引这一事实,并定义自定义块辅助对象,根据其值有条件地呈现标记
当然,尽管您可以使用把手来实现这一点,但这与它的原理背道而驰,在函数中加入任何逻辑来格式化传递给模板的数据将更为惯用
助手可能看起来像:
Handlebars.registerHelper('nthIteration', function(index, i, options) {
if (index === i) {
return options.fn(this);
}
return options.inverse(this);
});
你可以这样使用它:
{{#每个通道数据}
{{{#n迭代@index 2}
{{../msg}
{{/n次迭代}
{{/每个}}
我不太清楚您在第二个问题中到底想要什么,但是您可能可以根据您的需要调整
nthieration
block helper。在数组中循环时,您可以使用{{@index}},它引用当前索引。您可以检查此值以放置日期。@V.Villacis编辑后我已编辑了我的答案:要使msg
显示在#每个循环中,您需要编写{../msg}
,而不是{{msg}
Handlebars.registerHelper('nthIteration', function(index, i, options) {
if (index === i) {
return options.fn(this);
}
return options.inverse(this);
});