11

ほこりに関するドキュメントはひどいです、私は私がおそらく見つけることができるすべてをすでに熟読しました、そしてこれがどのように機能することになっているのか理解できません。

想定される特殊値$idxと$lenでこの問題が発生しています。これらは、正しく推測した場合、配列のようなセクションとその配列のようなセクションの長さを反復処理しながら現在のインデックスを返します。テンプレートをフォーマットするためにワークアウトしようとしている@if条件(実際には複数)があり、値が私が理解できるほど近くに機能していないため、次の質問が発生します。

  1. $idxと$lenはdust.jsの実際のスペシャルですか?
  2. @ifでそれらを使用できますか?使用する場合は、どのように使用しますか?
  3. 1 = trueと仮定すると、$ idxはゼロベースですか?

これが私のテンプレートです:

{#myArray}
  {name}{@sep}, {/sep}{@if cond="('{$idx}' == '{$len} - 2')"}and {/if}{@if cond="('{$idx}' == '{$len} - 1')"}{@if cond="('{$len}' == '1')"} is {:else} are {/if}here.{/if}
{/myArray}

それがすることになっていること:

  • 人が1人いる場合は、「ジェイクはここにいます」という文字列をレンダリングします。
  • 2人の場合は、「ジェイクとジョンはここにいます」という文字列をレンダリングします。
  • 3人以上の場合は、「ジェイク、ジョン、ビルはここにいます」という文字列をレンダリングします。(明らかに、必要に応じてコンマ区切りの名前を追加します)

$idxと$lenのスペシャルが機能すると思うように機能する場合、このテンプレートは私が知る限り、私が望むことを実行しますが、$idxと$len(または両方)が実装されています。そうでない場合、私が望むことを行うテンプレートを作成するにはどうすればよいですか?

4

2 に答える 2

5
  1. はい、彼らはダストの特別なヘルパーです。
  2. しかし、dustjs-linkedin wiki(@ifセクションの下)によると、プリミティブのリスト内では使用できません。このような場合、次の構文を使用する必要があります。

    {@idx}{.}{/idx}
    

同じことが長さにも当てはまります。つまり、あなたはこのjsFiddleのテンプレートのようなテンプレートになります。

3.はい、$idxと@idxはゼロベースです。(詳細については、こちらを参照してください)。

于 2012-08-12T20:49:01.653 に答える
0

しかし、dustjs-linkedin wiki(@ifセクションの下)によると、プリミティブのリスト内では使用できません。このような場合、次の構文を使用する必要があります。

{@idx}{。}{/idx}

これは現在変更されており、プリミティブでも$idxと$lenは機能します

于 2012-09-12T02:27:10.870 に答える