2

これは、次のjsfiddleで遊ぶことができます。次の JSON データがあるとします。

{
    "people": [
        {
            "name": "Bob",
            "eye-color": "Green"
        },
        {
            "name": "Jill",
            "eye-color": "Blue"
        },
        {
            "name": "James",
            "eye-color": "Green"
        }
    ]
}

Dust.jsを使用してすべての人の名前を出力したい場合は、次のようにテンプレートを設定します。

<ul>
    {#people}
    <li>{name}</li>{~n}
    {/people}
</ul>

ただし、次の場合はどうでしょう。

1) 「緑」の目を持つ人々の名前だけを出力したかったのですか? ほこりの条件を使用してそれを行う方法はありますか?

2) 目の色に関係なく、最初の 2 つの名前だけを出力したかった

3) 目の色に関係なく、2 人目の名前だけを出力したかった

編集: 4 番目と 5 番目のシナリオの追加:

4) 2 番目と 3 番目の名前のみを表示したい (つまり、インデックスXからインデックスY )

5) 緑色の目を持つ人々の最初の 2 つの名前のみを出力したい (表示されない緑色の目を持つ人々を含め、人々のリストが上記の 3 つよりもはるかに長いとします)。

そしてもう1つの質問:

JSON に次のようなキーと値のペアがあるとします。

{ "tags": ["tag1", "tag2", "tag3"] }

たとえば、{@eq} を使用して「tag2」が含まれているかどうかを確認する方法はありますか?

4

1 に答える 1

1

3 つすべてを機能させることができますが、Dustヘルパーを使用する必要があります。

@eq1:ヘルパーが必要です (ダッシュは Dust を混乱させる可能性があるため、キーも からeye-colorに変更します。eyeColor

<ul>
    {#people}
        {@eq key=eyeColor value="Green"}
            <li>{name}</li>{~n}
        {/eq}
    {/people}
</ul>

2:@ltヘルパーと$idx($idxは配列内の現在の項目のインデックスで、最初の項目は 0 です) が必要です。

<ul>
    {#people}
        {@lt key=$idx value=2}
            <li>{name}</li>{~n}
        {/lt}
    {/people}
</ul>

@eq3:ヘルパーが必要です。$idx

<ul>
    {#people}
        {@eq key=$idx value=1}
            <li>{name}</li>{~n}
        {/eq}
    {/people}
</ul>
于 2014-02-12T19:56:47.130 に答える