【问题标题】:Render unstanitized HTML with ClojureScript+Sablono使用 ClojureScript+Sablono 渲染未实例化的 HTML
【发布时间】:2015-03-08 22:04:44
【问题描述】:

我有一个保存在全局原子中的数据集(根据 ClojureScript SPA 中的典型设计模式),并且我知道数据是安全的(我手动输入了它 - 它只是我正在渲染的引号列表每个页面加载随机一个)。

但是,引号包含基本的 HTML 标记,如 <i> 和字符,如 &mdash。我正在使用sablono 在 HTML 中呈现数据,如下所示:

(defcomponentk quote
  [[:data quotes]]
  (render [_]
      (let [quote (rand-nth quotes)]
        (html
         [:section
          [:blockquote {:id "quote"}
           [:header (om/build citation quote)]
           (map #(vector :p %) (:quote quote))]]))))

(:quote quote) 是一个字符串向量,每个字符串都是引用的一段(因此我将:p 标记映射到它上面)。

如何告诉 Sablono 将字符串呈现为 HTML 而不是原始文本?

我唯一能想到的是将sablono.core/html 映射到每个字符串上,但我无法让它工作。

【问题讨论】:

    标签: reactjs clojurescript om


    【解决方案1】:

    React 提供dangerouslySetInnerHTML 作为其组件的选项。如果您将 Sablono 与 Om 一起使用,您可以执行以下操作:

    (om.dom/div #js {:dangerouslySetInnerHTML #js {:__html "<b>Bold!</b>"}})
    

    更多信息在这里:

    https://groups.google.com/forum/#!topic/clojurescript/DXzHx3vkszo https://github.com/r0man/sablono/issues/36

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      相关资源
      最近更新 更多