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