关于灰尘的文档简直太糟糕了,我已经仔细研究了所有可能找到的东西,无法弄清楚它应该如何工作。

我在使用特殊值$ idx和$ len时遇到了这个问题,如果我猜对了,它们会在遍历数组状部分和数组状部分的长度时返回当前索引。我有一个@if条件(实际上是多个),我正在尝试锻炼以格式化模板,并且值无法按我所知的那样工作,这使我想到以下问题:

  • $ idx和$ len在dust.js中是否真正特价?
  • 您可以在@if中使用它们吗?如果可以,如何使用?
  • 假设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}
    

    它应该做什么:
  • 如果只有一个人,则呈现字符串“Jake is here”。
  • 如果有两个人,则呈现字符串“Jake和John在这里”。
  • 如果有三个或三个以上的人,则呈现字符串“Jake,John和Bill在这里”。 (显然,根据需要添加用逗号分隔的名称)

  • 如果$ idx和$ len特价商品以人们认为的方式工作,则此模板将完成我想要的工作,但是据我所知,我不认为$ idx或$ len(或者两者均已实现。如果不是,我该如何创建自己想要的模板?

    最佳答案

  • 是的,他们是Dust中的特殊帮助者。
  • 但是根据dustjs-linkedin wiki(在@if部分下),它们不能在基元列表中使用。在这种情况下,您必须使用以下语法:
    {@idx}{.}{/idx}
    

  • 长度也一样。因此,您的模板将类似于jsFiddle中的模板。

    3.是的,$ idx和@idx是从零开始的。 (有关更多信息,请参见here)。

    关于dust.js - dust.js条件语句中的$ idx和$ len,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11910070/

    10-11 07:30
    查看更多