可以在{@math}帮助器中使用{@size}帮助器吗?

时间:2015-07-14 08:42:12

标签: dust.js

以下是代码段:

{@math key="{@size key=result/}" method="subtract" operand="3"/}

上面的代码正在抛出" SyntaxError:eq的预期结束标记但找不到它。"。

还有其他方法可以在dustjs中实现上述操作吗?

1 个答案:

答案 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;
  }
}