我正在使用 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/