如何在Markojs中呈现原始HTML?

时间:2019-04-08 17:39:37

标签: javascript html marko

我将Markojs用作UI库,并且需要呈现从服务器检索到的数据模型中包含的原始HTML。

例如,假设我从服务器检索的数据模型如下所示:

data = {
    copy: "<p class='myClass'>Hello World!</p>"
}

我希望能够使用以下内容在我的Marko模板中呈现我的副本:

.copy
    ${input.data.copy}

并使其正确呈现HTML元素,但效果并不理想。它确实会呈现到页面上,但在页面上也将"<"">"作为文本显示在页面上。

this似乎是我需要的功能,但已弃用。正确的方法是什么?

这是解决方案:

.copy -- $!{input.data.copy}

1 个答案:

答案 0 :(得分:2)

默认情况下,Marko会转义文本值,但是您可以使用$!{input.data.copy}(请注意!)来告诉Marko您想要原始HTML。

https://markojs.com/docs/syntax/#dynamic-text

执行此操作时,实际上是在关闭Marko的安全性功能,因此请确保,如果要获取的任何动态内容来自不安全的来源,则该内容将被转义到其他地方以防止代码被注入您的页面。