以下是代码段:
{@math key="{@size key=result/}" method="subtract" operand="3"/}
上面的代码正在抛出" SyntaxError:eq的预期结束标记但找不到它。"。
还有其他方法可以在dustjs中实现上述操作吗?
答案 0 :(得分:0)
Dust不允许将辅助函数用作传递参数的值。
一般情况下,一旦你开始必须嵌套帮助器,你应该问你是否在模板中加入太多逻辑而不是上下文 - 这就是Dust试图通过相对强大的限制来强制执行的。
您可以使用context helper将此逻辑从模板中拉出来,如下所示:
{#overflow key=results}...and {.} more!{/overflow}
注意逻辑是如何从模板中删除的。现在,您不会内联硬编码业务规则。
将overflow
帮助器添加到您的上下文中:
{
"results": [ ... ],
"overflow": function(chunk, context, bodies, params) {
var results = context.resolve(params.key);
return results.length - 3;
}
}