# 實用程式函數
# 輔助程式實用工具
實作自訂輔助程式時,這些方法會很方便。
# Handlebars.SafeString(字串)
在渲染範本時,防止 字串
遭到跳脫。
new Handlebars.SafeString("<div>HTML Content!</div>");
在建構將標記為安全的字串時,任何外部內容都應使用 Handlebars.escapeExpression
方法適當跳脫,以避免潛在的安全問題。
# Handlebars.escapeExpression(字串)
HTML 跳脫傳入的字串,使其安全地在 HTML 內容中作為文字渲染。
Handlebars.Utils.escapeExpression(string);
對於字串值,將 &
、<
、>
、"
、'
、`
、=
取代為 HTML 實體等效值。SafeString
值保持不變。
除了使用三重花括號括起來的表達式之外,所有表達式的輸出都會透過此方法傳遞。輔助程式在透過 SafeString
實例傳回 HTML 內容時,也應使用此方法,以防止可能的程式碼注入。
此方法的別名為 Handlebars.Utils.escapeExpression
。
# Handlebars.createFrame(資料)
區塊輔助程式用來建立子資料物件。
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(值)
內建的 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
輔助函式使用的記錄器。
如果需要,可以覆寫。