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

sup*_*cuo 2 html javascript ractivejs

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

一个最小的测试用例,改编自60秒的设置指南:

<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>' }
});
Run Code Online (Sandbox Code Playgroud)

正如你在这个JSfiddle中看到的那样,结果Hello, <b>world</b>不是预期的"Hello,world "

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

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

Ric*_*ris 10

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

<p>Hello, {{{name}}}!</p>
Run Code Online (Sandbox Code Playgroud)

在传统的胡子中,这意味着"不要逃避name' 的价值." 转换为Ractive,意味着'将内容插入HTML而不是文本.

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