3

リストの最初の3つのアイテムを印刷したいとします。だから私は最初spliceにリストを作成し、次にeach要素を確認したいと思います。これを使用してこれを行うための最良の方法は何でしょうhandlebars.jsか?

{{#each my_list|splice[0,3]}}それを行う最も直感的な方法は、またはのようなものです{{#each splice my_list 0 3 }}が、ハンドルバーはそのような操作をサポートしていません。

他のヘルパーを連鎖させるヘルパーをどのように思い付くことができますか(どの段階のどのヘルパーも追加の引数を必要とする可能性があることを知っています)?

注:このロジックを他の場所に移動したくありません。テンプレートにこのロジックが確実に必要であると仮定しましょう。

4

2 に答える 2

0

独自のヘルパーを追加するだけです:

Handlebars.registerHelper('spliced_each', function(a, from, to, block) {
    var s = '';
    for(var i = from; i < to; ++i)
        s += block(a[i]);
    return s;
});

そして、あなたのテンプレートは次のように言うことができます:

{{#spliced_each my_list "2" "5"}}
    ...
{{/spliced_each}}

デモ: http://jsfiddle.net/ambiguous/Zrd42/

ハンドルバーは意図的に単純化されており、カスタム ヘルパーはテンプレートに特別なロジックを追加する方法です。

于 2012-09-22T19:39:00.170 に答える