6

我希望使用 Clojurescript 设置“输入”元素的“值”属性,但是我在 goog.com 中遇到了 setProperties 的语法问题。有没有人有一个工作的例子?

更新 - - -

这似乎有效:

(goog.dom.setProperties 
 (goog.dom/getElement "element-name")
 (clj->js {:value "text"}))
4

1 回答 1

10

如果您需要创建一次性 JS 对象以与 JS API 一起使用,您可以直接使用 js-obj

(js-obj "value" "text")
;; produces {"value": "text"} in the compiled output

当然,如果您已经有一个带有相应条目的 ClojureScript 映射,clj->js会更方便。

更重要的是,您可能需要考虑切换到 ClojureScript 库来进行 DOM 操作。有几个可用:

  • 卢克·范德哈特的Domina可能是第一个,被 Enfocus(如下所列)和Pedestal使用;

  • Prismatic 的dommy,因其自身的优点以及Prismatic 博客上关于它的非常有趣的博客文章而引人注目(可以很好地介绍宏的好处:第一个第二个第三个);

  • Creighton Kirkendall 的Enfocus,简而言之,这是一个类似于 Enlive 的ClojureScript库,非常棒;

  • Kevin Lynagh 的Singult,这是一个用于 ClojureScript 的 Hiccup 样式库,具有很酷的功能,用于合并对 DOM 的更改,而不是从头开始重新渲染。

于 2013-07-09T19:05:25.740 回答