1

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

SUM_COUNT_LABOR_COUNTRIES_SMS_PAST

浏览器不使用下划线,因此它会变得丑陋。我希望我的灰尘模板在每个下划线后添加一个零宽度空格,以便浏览器可以包装它。这绝对属于模板层而不属于模型,但我不知道如何使用dust.js 正确实现这一点,否则它是非常好的将表示与逻辑分离的原则。

我要创建一个“帮助”功能吗?我在哪里放置辅助功能?如何从模板中调用它?

4

1 回答 1

10

灰尘中有很多方法可以解决这个问题。我认为您正在寻找的可能是定义一个灰尘过滤器。你可以扩展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}})

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

the variable is: {variable|zws}

希望这可以帮助。

于 2012-06-26T05:53:29.387 回答