0

js テンプレートとして Handlebars.js を使用しています。そして、配列を反復処理する必要がありますが、配列が終了するまでではなく、特定の回数未満です。

したがって、次の JSON があるとします。

{
    "obj":
        [
            {"user": "Fred", "age": "23", "type": "personal"},
            {"user": "Ralph", "age": "32", "type": "business"},
            {"user": "John", "age": "44", "type": "other"},
            {"user": "Alex", "age": "44", "type": "other"},
            {"user": "Stan", "age": "6", "type": "other"},
            {"user": "Cartman", "age": "5", "type": "other"},
            {"user": "Kennie", "age": "6", "type": "other"}
        ]
}

しかし、最初の 4 人のユーザーだけを出力する必要があるため、Stan、Cartman、および Kennie は表示されません。すべてを繰り返す必要がある場合は、次のようなものを使用します。

<ul>
    {{#each obj}}
    <li>
        <div>{{this.user}}</div>
        <div>{{this.age}}</div>
        <div>{{this.type}}</div>
    </li>
    {{/each}}
</ul>

どうすれば変更できますか?

質問 2: 現在、obj を使用しているのは、配列のみで構成される JSON を反復処理する方法を理解できなかったという理由だけです。

        [
            {"user": "Fred", "age": "23", "type": "personal"},
            {"user": "Ralph", "age": "32", "type": "business"}
        ]

その厄介な obj なしで反復するようにテンプレートを変更するにはどうすればよいですか?

4

1 に答える 1

0

わかりました、質問 2 を解決する方法を見つけました。

を使用thisすると問題が解決します

<ul>
    {{#each this}}
    <li>
        <div>{{this.user}}</div>
        <div>{{this.age}}</div>
        <div>{{this.type}}</div>
    </li>
    {{/each}}
</ul>

最初の質問については、どうやらこれを handlebar.js でネイティブに行う方法はないようです。そのため、独自のヘルパーを作成する方法を考えています。

PS。muのおかげで、最初の部分の答えを表示するには短すぎます: handlebars.js でそれぞれの結果を制限する

于 2012-11-12T16:36:05.030 に答える