【问题标题】:How do I render raw HTML in Markojs?如何在 Markojs 中呈现原始 HTML?
【发布时间】:2019-08-29 22:13:48
【问题描述】:

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

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

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

我希望能够在我的 Marko 模板中呈现我的副本,如下所示:

.copy
    ${input.data.copy}

并让它正确地呈现 HTML 元素,但它并没有像预期的那样工作。它会渲染到页面,但它还会在页面上显示 "&lt;" 之前和 "&gt;" 之后作为页面上的文本。

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

解决方案如下:

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

【问题讨论】:

    标签: javascript html marko


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-21
      • 1970-01-01
      • 2021-08-20
      • 2016-04-26
      • 2020-01-26
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多