dust.js - {@size} 辅助函数可以在灰尘中的 {@math} 辅助函数内部使用吗?

标签 dust.js

这是代码片段:

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

上面的代码抛出“SyntaxError: Expected end tag for eq but it was not find.”。

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

最佳答案

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

关于dust.js - {@size} 辅助函数可以在灰尘中的 {@math} 辅助函数内部使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401837/

相关文章:

node.js - 灰尘 : should async calls ever be made from a template helper?

javascript - NodeJS/Express : implicitly push data from custom middleware into render call

html - 仅用于索引页的全 Angular 图像

node.js - 从字符串表达渲染模板

dust.js - 在dust.js 中的表达式和嵌套表达式?

dust.js 对象打印

javascript - dust.js - 我可以使用助手来循环访问逗号分隔值吗?

javascript - 在 require.js 中使用 Dust

javascript - 如何使用服务器的 JSON 响应动态填充灰尘模板?