如何在Markojs中呈现原始HTML?

问题描述 投票:1回答:1

我使用Markojs作为我的UI库,我需要渲染从服务器检索的数据模型中包含的原始HTML。

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

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

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

.copy
    ${input.data.copy}

并正确呈现HTML元素,但它没有按预期工作。它确实渲染到页面,但它也显示了之前的"<"">"之后作为页面上的文本。

它看起来像this是我需要的功能,但已被弃用。这样做的正确方法是什么?

这是解决方案:

.copy -- $!{input.data.copy}
javascript html marko
1个回答
3
投票

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

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

当你这样做时,你实际上是关闭了Marko的安全功能,所以请确保,如果您获得的任何动态内容来自不安全的来源,它将被转移到其他地方,以防止代码被注入您的页。

© www.soinside.com 2019 - 2024. All rights reserved.