我希望使用Clojurescript設置「input」元素的「value」屬性,但我在goog.com中遇到setProperties的語法問題。有沒有人有一個工作的例子?如何在Clojurescript中設置DOM元素的屬性?
更新 ------
這似乎工作:
(goog.dom.setProperties
(goog.dom/getElement "element-name")
(clj->js {:value "text"}))
我希望使用Clojurescript設置「input」元素的「value」屬性,但我在goog.com中遇到setProperties的語法問題。有沒有人有一個工作的例子?如何在Clojurescript中設置DOM元素的屬性?
更新 ------
這似乎工作:
(goog.dom.setProperties
(goog.dom/getElement "element-name")
(clj->js {:value "text"}))
如果你需要用JS API的使用創造一次性JS對象,可以如此直接用做js-obj
:
(js-obj "value" "text")
;; produces {"value": "text"} in the compiled output
當然,如果你已經有了一個ClojureScript地圖用相應的條目, clj->js
會更方便。
更重要的是,您可能需要考慮切換到用於DOM操作的ClojureScript庫。有幾個可供選擇:
多彩的dommy,值得注意的是由於自身的優點,以及它的非常有趣的博客文章上Prismatic's blog(其可以作爲一個偉大的介紹宏的好處:first one,second one,third one);
Creighton Kirkendall的Enfocus,簡而言之,這是一個類似於ClojureScript的Enlive庫,它很棒;
Kevin Lynagh的Singult,它是ClojureScript的一個Hiccup樣式庫,它具有很酷的功能,可以合併DOM中的更改,而不是從頭開始重新渲染。