2012-03-21 41 views
8

開箱即用下劃線模板的使用標記<%= %>爲原料,並<%- %>爲HTML逃脫內容。下劃線模板 - 變化的令牌標誌

我知道你可以使用類似更改標記:

_.templateSettings.interpolate = /\{\{(.+?)\}\}/g; 

但這是如何涉及到原材料和逃脫的內容?它看起來像你最終只有一種標記。或者我忽視了什麼?

回答

15

Underscore.js documentation說,這(強調):

如果ERB風格的分隔符是不是你的那杯茶,你可以改變下劃線的模板設置,使用不同的符號來襯托插值代碼。定義一個插值的正則表達式匹配應該逐字插值表達式,轉義正則表達式來匹配應該是HTML轉義之後插入表達式和一個正則表達式評估以匹配應在不插入進行評估到所得到的字符串表達式。

所以你可以隨便給_.templateSettings對象的escape屬性:

_.templateSettings.escape = /\{\{-(.*?)\}\}/g 
>>> compiled = _.template("Escaped: {{- value }}\nNot escaped: {{ value }}") 
>>> compiled({value: 'Hello, <b>world!</b>'}) 
"Escaped: Hello, &lt;b&gt;world!&lt;&#x2F;b&gt; 
Not escaped: Hello, <b>world!</b>" 
+1

阿拜 - 錯過了位。如果他們在示例代碼中包含這兩個設置,它會更有用。 – UpTheCreek 2012-03-21 10:35:47