1

我有一个保存在全局原子中的数据集(根据 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每个字符串,但我无法让它工作。

4

1 回答 1

2

ReactdangerouslySetInnerHTML为其组件提供了一个选项。如果您将 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

于 2015-03-09T13:57:05.667 回答