【问题标题】:How do I implement custom rendering logic in dust.js?如何在dust.js 中实现自定义渲染逻辑?
【发布时间】:2012-06-26 13:53:29
【问题描述】:

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

SUM_COUNT_LABOR_COUNTRIES_SMS_PAST

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

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

【问题讨论】:

    标签: javascript dust.js


    【解决方案1】:

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

    希望这会有所帮助。

    【讨论】:

    • 这很棒,帮助我创建了一种检查数组长度的简单方法
    猜你喜欢
    • 2023-02-07
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2015-01-01
    相关资源
    最近更新 更多