关于dust的文档太糟糕了,我已经看遍了所有可能找到的内容,但仍然无法弄清楚它应该如何工作。
我正在遇到关于所谓的特殊值$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 and John are here."
- 如果有三个或以上人,输出字符串 "Jake, John, and Bill are here."(显然,根据需要添加逗号分隔的姓名)
如果 $idx 和 $len 特殊变量按照人们想象中的方式运行,那么这个模板将会实现我想要的功能。但是,我认为 $idx 或 $len(或者两者都不是)没有被实现。如果它们不存在,那么我该如何创建一个能够实现我需求的模板呢?