如何检查 Dust.js 中不区分大小写的值?
How do I check case-insensitive values in 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}
语句吗?
并发症:
- 这些值来自客户填充的数据库。我不能在它到达模板的时间之间放置一个清理步骤。
- 我无法轻松添加支持助手来处理不区分大小写的问题。这是可能的,但我希望语言本身首先有一个解决方案。
经过团队的一些讨论,您执行此操作的最佳方法似乎是添加灰尘过滤器而不是助手。像这样的东西可以添加到灰尘全局:
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}
如果这看起来很愚蠢,请原谅我,因为它确实看起来很愚蠢。
我正在处理别人的代码,基本上是这样工作的:
{@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}
语句吗?
并发症:
- 这些值来自客户填充的数据库。我不能在它到达模板的时间之间放置一个清理步骤。
- 我无法轻松添加支持助手来处理不区分大小写的问题。这是可能的,但我希望语言本身首先有一个解决方案。
经过团队的一些讨论,您执行此操作的最佳方法似乎是添加灰尘过滤器而不是助手。像这样的东西可以添加到灰尘全局:
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}