我希望使用 Clojurescript 设置“输入”元素的“值”属性,但是我在 goog.com 中遇到了 setProperties 的语法问题。有没有人有一个工作的例子?
更新 - - -
这似乎有效:
(goog.dom.setProperties
(goog.dom/getElement "element-name")
(clj->js {:value "text"}))
我希望使用 Clojurescript 设置“输入”元素的“值”属性,但是我在 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 操作。有几个可用:
Prismatic 的dommy,因其自身的优点以及Prismatic 博客上关于它的非常有趣的博客文章而引人注目(可以很好地介绍宏的好处:第一个,第二个,第三个);
Creighton Kirkendall 的Enfocus,简而言之,这是一个类似于 Enlive 的ClojureScript库,非常棒;
Kevin Lynagh 的Singult,这是一个用于 ClojureScript 的 Hiccup 样式库,具有很酷的功能,用于合并对 DOM 的更改,而不是从头开始重新渲染。