Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在每个循环中的给定迭代中在Handlebarsjs中推送html标记_Javascript_Node.js_Express_Handlebars.js - Fatal编程技术网

Javascript 在每个循环中的给定迭代中在Handlebarsjs中推送html标记

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

我的channel.json有7个信息对象,它们在hb中被迭代,我想在它们之间加上一个日期。换句话说,在第三次迭代之后,在循环之间,如何使用手柄推送html标记以显示?最终我想把它推进一个循环。我希望在不修改.json数据的情况下完成这项工作

我的index.handlebar中有以下代码

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