【问题标题】:In dust.js can the inital value of $idx not be zero based?在dust.js 中,$idx 的初始值不能从零开始吗?
【发布时间】:2013-02-08 20:56:17
【问题描述】:
如果我使用索引助手是否可以让计数从 1 而不是 0 开始。两者:
{@idx}{.}{/idx}
和
{$idx}
从零开始。
有人知道怎么做吗?
如果你能做到就完美了:
{$idx + 1}
但显然这行不通。
【问题讨论】:
标签:
javascript
templates
dust.js
【解决方案1】:
我猜你可以将数学助手与 $idx 结合使用:
{@math key=$idx method="add" operand="1"/}
【解决方案2】:
要在灰尘模板中使用@math,您需要添加默认情况下从灰尘核心包中排除的灰尘助手。
在节点中“加载”除尘助手所需的具体语法是:
var dust = require('dustjs-linkedin');
dust.helper = require('dustjs-helpers');
如果您无法添加这些帮助程序,这将是一个非常奇怪的决定,但您仍然可以像这样在当前代码库中创建自己的函数,可以使用它来代替 @gt 或 @math
var baseContext = dust.makeBase({
position: function(chunk, context) {
return context.stack.index + 1;
},
});
现在您可以使用 {position} 而不是 ${idx} 来计算从 1 到 n 的循环。
【解决方案3】:
将数学助手放入 {@idx}
<table>
{#names}
<tr><td>{@idx}{@math key="{$idx}" method="add" operand="1"/}{/idx}</td>
<td>{name}</td>
</tr>
{/names}
</table>