把手只显示前三项

时间:2013-06-24 22:36:29

标签: handlebars.js

我有一个广泛的新闻来源(JSON),但我需要在主页上向用户显示前三个新闻。有没有办法从第四个开始丢弃? 类似的东西:

{{#each news}}
  {{ if index <= 3 }}
    <h3>{{title}} - {{date}}</h3>
    <p>{{post}}</p>
  {{/if}}
{{/each}}

是否可以仅使用Handlebars,还是需要使用Javascript?

2 个答案:

答案 0 :(得分:3)

我修改了 Handlebar 以支持您可以定义的范围。在示例中,您想要显示4个项目,但希望从第二个项目开始。你走了:

/*
 * Item helper.
 *
 * @return n elements
 */
Handlebars.registerHelper('listItem', function (from, to, context, options){
    var item = "";
    for (var i = from, j = to; i < j; i++) {
        item = item + options.fn(context[i]);
    }
    return item;
});

然后就像这样使用车把:

{{#listItem 2 6 articles}}
    {{> article }}
{{/listItem}}

答案 1 :(得分:1)

你将需要使用Handlebar助手,句柄栏不会做这种类型的条件检查。

    Handlebars.registerHelper('arrayCheck', function (newsArray) {
        //Logic
    });