我试图在 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 处理表达式的方式有关..但我还没有达到源代码有多大意义的地步。
关于如何获得预期行为的任何想法?
最佳答案
是的!您可以使用三重:
<p>Hello, {{{name}}}!</p>
在传统的 Mustache 中,这意味着“不要逃避
name
的值”。翻译成 Ractive,它的意思是“将内容插入为 HTML 而不是文本。请注意 在插入之前未对 HTML 进行清理,因此如果
name
来自用户输入,则可能存在 XSS 和其他恶意: http://jsfiddle.net/rich_harris/4jBC8/ 。关于javascript - 在 Ractive.js 中使用 HTML 标签呈现内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23514951/