2014-01-17 61 views
2

我想創建一個使用lodash.template()一個HTML代碼,但結果還是沒我的預期。我怎樣才能取消轉義在lodash.template html標籤()?

var a = '<td>a</td>'; 
var expected = '<tr><td>a</td></tr>'; 
var actual = _.template('<tr><%- a %></tr>', {a: a}); 

console.log(actual); 
"<tr>&lt;td&gt;a&lt;/td&gt;</tr>" 

已填寫的文字a因此已被轉義。

我怎樣才能得到的結果爲expected

我可以設置options.escape,但不知道如何使用此選項。

謝謝!

回答

4

您可以使用<%= a %>print評估上下文中記載,但生成HTML,不建議用於安全這樣。

var actual = _.template('<tr><% print(a) %></tr>', {a: a}); 
// or 
var actual = _.template('<tr><%= a %></tr>', {a: a});