2014-05-07 39 views
2

我試圖在由Ractive.js呈現的數據中包含HTML標記(以便自動下標化學符號,以防任何人關心),但是Ractive只是插入文本而不是創建新的DOM元素。使用Ractive.js中的HTML標記呈現內容

的最小的測試案例,改編自60-second setup guide

<script id='template' type='text/ractive'> 
    <p>Hello, {{name}}!</p> 
</script> 

<script type="text/javscript"> 
    var ractive = new Ractive({ 
    el: 'container', 

    template: '#template', 

    data: { name: '<b>world</b>' } 
}); 

正如你可以看到this JSfiddle,結果是Hello, <b>world</b>而不是預期的 「你好,世界

我猜測這是與Ractive處理表達式的方式有關......但我還沒有達到源代碼合理的地步。

有關如何獲得預期行爲的任何想法?

回答

10

是的!您可以使用三stache:

<p>Hello, {{{name}}}!</p> 

在傳統的鬍子,這意味着「不要逃避的name」的值。翻譯成Ractive,意味着'將內容作爲HTML插入而不是文本。

注意的HTML沒有插入前消毒,因此,如果name來自用戶的輸入來有一個爲XSS和其他髒東西潛能:http://jsfiddle.net/rich_harris/4jBC8/

+0

詛咒我可憐的閱讀理解。這工作完美,謝謝。 – supervacuo