1

Dustjs テンプレートにいくつかのロジックを追加しようとしていますが、すべてをまとめるのに苦労しています。

次のような Json コードがあります。

{
    "names": [{
        "name": "User 1",
        "isSir": true
    }, {
        "name": "User 2",
        "isSir": true
    }, {
        "name": "User 3",
        "isSir": true
    }, {
        "name": "User 4",
        "isSir": false
    }, {
        "name": "User 5",
        "isSir": false
    }, {
        "name": "User 6",
        "isSir": false
    }]
}

次に、これをループして、「isSir」の各バリエーションの最初の項目のみを表示します。残りの項目は CSS で非表示になるため、最終的には次のようになります。

  • ユーザー 1 (表示)
  • ユーザー 2 (非表示)
  • ユーザー 3 (非表示)
  • ユーザー 4 (表示)
  • ユーザー 5 (非表示)
  • ユーザー 6 (非表示)

のバリエーションを使用して、最初{@if condのものだけを取得し"Sir"、次に他のものを取得しようとしましたが、カウントを維持する必要があるため、ループのどこにいるのかがわかるため、すぐに を使用しようとしました{@select key=

私はダストにかなり慣れていないので、何かが足りないと確信しています。

誰か私にこれを手伝ってもらえますか?

4

1 に答える 1

2

Dust は、論理のないテンプレート言語、または少なくとも論理の少ないテンプレート言語であることを意図しています。これは、アプリにロジックを含めることができないという意味ではなく、JSON で表示ロジックを提供する必要があるということだけです。

現在の JSON では Dust で問題を解決することはできませんが、JSON を次のように変更すると:

{
    "names": [{
        "name": "User 1",
        "isSir": true,
        "isHidden": false
    }, {
        "name": "User 2",
        "isSir": true,
        "isHidden": true
    }, {
        "name": "User 3",
        "isSir": true,
        "isHidden": true
    }, {
        "name": "User 4",
        "isSir": false,
        "isHidden": false
    }, {
        "name": "User 5",
        "isSir": false,
        "isHidden": true
    }, {
        "name": "User 6",
        "isSir": false,
        "isHidden": true
    }]
}

次に、次のようなテンプレートを使用できます。

<ul>
{#names}
  <li{?isHidden} class="hidden"{/isHidden}>
    {?isSir}Sir {/isSir}{name}
  </li>
{/names}
</ul>
于 2012-12-21T15:36:23.833 に答える