我希望使用Clojurescript设置“input”元素的“value”属性,但是我在goog.com中遇到了setProperties的语法问题。有人有一个有效的例子吗?
更新 ------
这似乎有效:
(goog.dom.setProperties
(goog.dom/getElement "element-name")
(clj->js {:value "text"}))
答案 0 :(得分:8)
如果您需要创建一次性JS对象以供JS API使用,您可以使用js-obj
直接创建:
(js-obj "value" "text")
;; produces {"value": "text"} in the compiled output
当然,如果您已经拥有包含相应条目的ClojureScript地图,clj->js
会更方便。
更重要的是,您可能需要考虑切换到ClojureScript库以进行DOM操作。有几种可用:
Prismatic's dommy,值得注意的是由于它自身的优点,以及Prismatic's blog上有关它的非常有趣的博客文章(可以作为对宏的好处的一个很好的介绍:{ {3}},first one,second one);
Creighton Kirkendall的third one,简而言之是一个Enfocus - 类似于ClojureScript的库,非常棒;
Kevin Lynagh的Enlive,这是一个针对ClojureScript的Hiccup风格的库,具有很酷的功能,可以合并DOM的更改,而不是从头开始重新渲染。