使用Ractive.js中的HTML标记呈现内容

时间:2014-05-07 10:14:21

标签: javascript html ractivejs

我正在尝试在由Ractive.js呈现的数据中包含HTML标记(对于自动下标的化学符号,以防有人关心),但Ractive只是插入文本而不是创建新的DOM元素。

一个最小的测试用例,改编自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>而不是预期的“Hello, world

我猜这是与Ractive处理表达式的方式有关..但我还没有达到源有用的意义。

有关如何获得预期行为的任何想法?

1 个答案:

答案 0 :(得分:10)

是的!你可以使用三重文章:

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

在传统的胡子中,这意味着不要逃避name&#39;的价值。转换为Ractive,表示将内容插入HTML而不是文本。

请注意在插入之前未对HTML进行清理,因此如果name来自用户输入,则可能存在XSS和其他恶意内容:http://jsfiddle.net/rich_harris/4jBC8/