如何在Dust.js中检查不区分大小写的值?

时间:2016-02-16 17:08:19

标签: javascript templates case-insensitive dust.js

请原谅我,如果这看起来很愚蠢,因为它看起来肯定是愚蠢的。

我正在处理其他人的代码,其基本上是这样的:

{@select key=name}
    {@eq value="Alice"}
    {@eq value="ALICE"}
    {@eq value="alice"}
    {@any} Your name is Alice! {/any}
    {@none} Your name isn't Alice! {/none}
{/select}

有没有办法合并那些非常相似的{@eq}陈述?

并发症:

  • 这些值来自客户填充的数据库。我不能在它到达模板的时间之间进行清洁。
  • 我无法轻松添加后备帮助程序来处理不区分大小写。这是可能的,但我希望语言本身首先有一个解决方案。

1 个答案:

答案 0 :(得分:1)

经过团队的一些讨论后,最好的方法就是添加一个Dust过滤器而不是一个帮助器。像这样的东西可以添加到尘埃全球:

dust.filters.lc = function lowercaseFilter(str) {
  if (typeof str === 'string') {
    return str.toLowerCase();
  }
  return str;
};

然后你可以这样做:

{@eq key="{name|lc}" value="alice"}Your name is most definitely Alice.{/eq}