Javascript 使用每个块把手内部的索引值

Javascript 使用每个块把手内部的索引值,javascript,arrays,loops,indexing,handlebars.js,Javascript,Arrays,Loops,Indexing,Handlebars.js,我有一个把手模板,可以在我的页面上插入img元素。图像URL来自一个最多可以有8个项目的数组,但我只想插入前4个项目 一个简单的{{#each}块,像这样为每个项目插入一个img: {{#each items}} <img src="{{item.url}}" /> {{/each}} 我该怎么做呢?我认为最简单的方法是在将数组传递给编译后的模板函数之前,对数组进行切片,.slice(0,4) 但是,如果出于某种原因,这不是一个选项,我想您必须创建一个自定义帮助器: Han

我有一个把手模板,可以在我的页面上插入
img
元素。图像URL来自一个最多可以有8个项目的数组,但我只想插入前4个项目

一个简单的
{{#each}
块,像这样为每个项目插入一个
img

{{#each items}}
    <img src="{{item.url}}" />
{{/each}}

我该怎么做呢?

我认为最简单的方法是在将数组传递给编译后的模板函数之前,对数组进行切片,
.slice(0,4)

但是,如果出于某种原因,这不是一个选项,我想您必须创建一个自定义帮助器:

Handlebars.registerHelper('firstFour', function (context, options) {
    var result = '';
    var length = Math.min(context.length, 4);
    for (var i = 0; i < length; i++) {
        result += options.fn(context[i]);
    }

    return result;
});
handlebar.registerHelper('firstFour',函数(上下文,选项){
var结果=“”;
var length=Math.min(context.length,4);
对于(变量i=0;i
您的模板如下所示:

{{#firstFour items}}
    <img src="{{this.url}}" />
{{/firstFour}}
{{{#前四项}
{{/firstFour}
{{#firstFour items}}
    <img src="{{this.url}}" />
{{/firstFour}}