2013-07-09 11 views
5

Clojurescriptを使用して「入力」要素の「値」プロパティを設定したいが、goog.comのsetPropertiesの構文に問題がある。誰かが実用的な例を持っていますか?ClojurescriptでDOM要素の属性を設定する方法は?

更新 ------

これは動作するようです:

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

答えて

8

あなたはJS APIとの使用のための使い捨てJSオブジェクトを作成する必要がある場合は、使用して直接行うことができますjs-obj

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

すでに適切なエントリとClojureScriptマップを持っている場合は、 clj->jsがより便利になります。

さらに重要なことに、DOM操作のためにClojureScriptライブラリに切り替えることを検討することをお勧めします。いくつか用意されています

  • ルークVanderHartのDomina、最初の一つとなっている可能性がありますが、Enfocusの(下記参照)とPedestalによって使用されます。

  • プリズムのdommy、注目すべき独自のメリットだけでなく、(マクロの利点に偉大な入門として役立つことができます:first onesecond onethird onePrismatic's blogにそれについて非常に面白いブログの記事によります。

  • ClojureScriptのためのEnliveのようなライブラリですが、これは一言で言えば、素晴らしいです。

  • Kevin LynaghのSingultは、ゼロから再レンダリングするのではなく、DOMの変更をマージするクールな機能を備えたClojureScript用のヒュックスタイルライブラリです。

関連する問題