1

入力した数値ごとに {{>template}} を {{each items}} でラップする Handlebars.registerHelper() を作成しようとしています。

このようなものです。

{{forevery items 4}}
    {{> item_row_template}}
{{/forevery}}

望ましい結果は、4 つの項目ごとに div をラップすることです。

<div class="row">
    <div class="item_1">item</div>
    <div class="item_2">item</div>
    <div class="item_3">item</div>
    <div class="item_4">item</div>
</div>

<div class="row">
    <div class="item_1">item</div>
    <div class="item_2">item</div>
    <div class="item_3">item</div>
    <div class="item_4">item</div>
</div>

等...

4

1 に答える 1

2

あなたがしたいことは、リストを繰り返し処理し、手動で div を頻繁に追加するヘル​​パーを作成することです。

次に例を示します。

Handlebars.registerHelper('forevery', function(context, limit, options) {
    var ret = "";
    if (context.length > 0) {
        ret += "<div>";
        for(var i=0, j=context.length; i<j; i++) {
            ret = ret + options.fn(context[i]);
            if ( (i+1) % limit === 0 ) {
                ret += "</div><div>";
            }
        }
        ret += "</div>";
    }
    return ret;
});

この関数は項目の配列をループし、n 行ごとに div を閉じて新しいものを開きます。したがって、これは次のように呼び出されます。

{{#forevery items 3}}
    {{> item_row_template}}
{{/forevery}}

お役に立てれば :)

于 2013-05-19T05:50:21.530 に答える