如何使用Clojurescript将文本转换为DOM元素? (和Om?)
问题描述:
在ClojureScript/Om应用程序中,我有一个DOM和一串HTML。如何使用Clojurescript将文本转换为DOM元素? (和Om?)
如何将该字符串的HTML转换为可插入DOM的元素?
我已经开始用山核桃分析HTML的路径,计划然后处理山核桃数据来创建DOM元素,但我认为必须有一种更简单的方式,我可以忽略。
(我并不需要验证HTML,我可以假设它足够安全和有效的。)
答
您不需要解析HTML字符串。这是不必要的开销。 React/Om支持类似DOM的innerHTML
属性。刚刚成立的道具是这样的:
(om.dom/div #js {:dangerouslySetInnerHTML #js {:__html "<b>Bold!</b>"}} nil)
如果不庵与普通DOM工作,设置innerHTML
属性,如:
(let [div (. js/document getElementById "elId")]
(set! (. div -innerHTML) "<b>Bold!</b>"))
比我的回答好多了。 – sbensu
使用Sablono时,它会是[:div {:dangerouslySetInnerHTML {:__ html“Bold!”}}] – jwhitlark