javascript - 如何在 dust.js 中实现自定义渲染逻辑?

标签 javascript dust.js

我正在使用 dust.js 呈现变量名称列表,这些名称有时很长并且包含下划线,例如:

SUM_COUNT_LABOR_COUNTRIES_SMS_PAST

浏览器不会用下划线换行,所以它会变得难看。我希望我的 dust 模板在每个下划线之后添加一个零宽度空间,以便浏览器可以将其换行。这绝对属于模板层而不属于模型,但我无法弄清楚如何使用 dust.js 正确实现这一点,否则这是将表示与逻辑分离的非常好的原则。

我是否创建了一个“辅助”函数?我在哪里放置辅助函数? 如何从模板中调用它?

最佳答案

在尘埃中有很多方法可以解决这个问题。我认为您正在寻找的可能是定义一个滤尘器。你可以扩展 dust.filters 添加你自己的过滤器。 dust.filters 在源代码中看起来像这样:

dust.filters = {
  h: function(value) { return dust.escapeHtml(value); },
  j: function(value) { return dust.escapeJs(value); },
  u: encodeURI,
  uc: encodeURIComponent,
  js: function(value) { if (!JSON) { return value; } return JSON.stringify(value); },
  jp: function(value) { if (!JSON) { return value; } return JSON.parse(value); }
};

所以您要做的是向其中添加另一个键值来过滤您的变量。例如如果你使用下划线:

_.extend(dust.filters, {zws: function(value){ your code here}})

然后你可以像这样在你的 dust 模板中调用它:

the variable is: {variable|zws}

希望对您有所帮助。

关于javascript - 如何在 dust.js 中实现自定义渲染逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037968/

相关文章:

javascript - nodeJS 中的发布/订阅实现

javascript - 使用 Bootstrap 3 和 Bootstrap 2

javascript - 在 HTA 应用程序中打开网站

node.js - Dust.js 在同一页面上多次使用相同的部分

javascript - Dust.js 模板不遵守条件存在

javascript - 如何将行索引值附加到 td 的 ID

jquery - 使用 Dust.js 进行客户端模板化中的条件语句

javascript - 使用 JavaScript 模板引擎有什么好处?

c# - 更改单击按钮上的切换选项卡

javascript - 使用 python 单击在线 js 按钮