我正在使用om作为clojurescript反应界面。
一个问题,我猜这与om和反应有关:
在我的html体内,我有一个id为“app”的div,用于om / react作为渲染目标。
更改此元素之外的属性的首选方法是什么。更具体地说,我需要为身体设置一些样式表。
现在,更具体的clojure:
如何为javascript对象设置多个键值对。 (例如document.body.style)
我正在使用它:
(doseq [[k v] {"backgroundColor" "red" "overflow" "hidden" ...}]
(aset js/document.body.style k v))
使用underscore.js有一个很好的方法:
_.extend(document.body.style, {"backgroundColor": "red" "overflow": "hidden"})
嗯,但这是问题所在。也许这不是真的需要,因为有一个特殊的om / react方式去。
答案 0 :(得分:3)
更好的方法是使用包含所有键值对的javascript对象设置正文样式:
(set! (.. js/document -body -style) #js {:backgroundColor "red" :overflow "hidden"})
答案 1 :(得分:0)
Naomi提供的解决方案很棒,但它使用了内联css的不良做法。我不是在代码中设置实际的css样式,而是将类设置为所需的html对象,并在样式表中定义该类的css属性。
例如:
(set! (.. js/document -body -className) "my-class")