# 实用函数
# 辅助工具
当您实现自定义辅助函数时,这些方法会派上用场。
# Handlebars.SafeString(string)
防止在渲染模板时对 string
进行转义。
new Handlebars.SafeString("<div>HTML Content!</div>");
在构建将被标记为安全的字符串时,应使用 Handlebars.escapeExpression
方法对任何外部内容进行适当的转义,以避免潜在的安全问题。
# Handlebars.escapeExpression(string)
对传入的字符串进行 HTML 转义,使其在 HTML 内容中安全地作为文本渲染。
Handlebars.Utils.escapeExpression(string);
将 &
、<
、>
、"
、'
、`
、=
替换为字符串值的 HTML 实体等效值。SafeString
值保持不变。
除了三花括号表达式之外,所有表达式的输出都将通过此方法传递。辅助函数在通过 SafeString
实例返回 HTML 内容时也应使用此方法,以防止可能的代码注入。
此方法在 Handlebars.Utils.escapeExpression
中别名。
# Handlebars.createFrame(data)
由块辅助函数用于创建子数据对象。
if (options.data) {
var data = Handlebars.createFrame(options.data);
data.foo = "bar";
options.data = data;
}
修改数据状态的辅助函数在执行此操作时应创建一个新框架,以隔离自身并避免破坏任何父级的状态。通常,每个辅助函数执行只需要创建一个框架。例如,each
迭代器创建一个单个框架,该框架被重复用于所有子执行。
# 通用工具
Handlebars 提供了各种通过 Handlebars.Utils
对象公开的实用程序方法。
# Handlebars.Utils.isEmpty(value)
确定给定值是否为空。
Handlebars.Utils.isEmpty(value)
内置的 if
和 with
辅助函数使用它来控制它们的执行流程。Handlebars 对空的定义是以下任何一种
- 长度为 0 的数组
- 除 0 之外的假值
这旨在与 Mustache 行为 (在新窗口中打开) 相匹配。
# Handlebars.Utils.extend(obj, value)
简单的实用程序方法,用于使用 value
上定义的所有键来扩展 obj
。
Handlebars.Utils.extend(foo, {bar: true})
将在对象 foo
上设置键 bar
,其值为 true
。
# Handlebars.Utils.toString(obj)
通用 toString
方法。
# Handlebars.Utils.isArray(obj)
确定对象是否为数组。
# Handlebars.Utils.isFunction(obj)
确定对象是否为函数。
# Handlebars.log(level, message)
log
辅助函数使用的记录器。
如果需要,可以覆盖。