2013-07-09 11 views
5

Chcę ustawić właściwość "value" elementu "input" przy użyciu Clojurescript, ale mam problem ze składnią właściwości setProperties w goog.com. Czy ktoś ma działający przykład?Jak ustawić atrybut elementu DOM w Clojurescript?

Aktualizacja ------

To wydaje się działać:

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

Odpowiedz

8

Jeśli trzeba utworzyć wyrzucenie przedmiotów JS do pracy z API JS, można to zrobić bezpośrednio za pomocą js-obj:

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

oczywiście jeśli masz już mapę ClojureScript z odpowiednimi wpisami, clj->js będzie bardziej wygodny.

Co ważniejsze, warto rozważyć przejście do biblioteki ClojureScript w celu manipulowania DOM. Dostępnych jest kilka to:

  • Łuk VanderHart na Domina, który może być pierwszym, stosuje się przez Enfocus (wymienione niżej) oraz Pedestal;

  • Prismatic na dommy, godne uwagi ze względu na własnych siłach, jak również bardzo zabawne blogi o tym na Prismatic's blog (które mogą służyć jako wspaniałe wprowadzenie do korzyści płynących z makrami: first one, second one, third one);

  • Creighton Kirkendall's Enfocus, który jest w skrócie biblioteką dla ClojureScript, która jest niesamowita;

  • Kevina Lynagha z Singult, która jest biblioteką w stylu Hiccup dla ClojureScript z fajną funkcjonalnością do scalania zmian w DOM, zamiast ponownego tworzenia od zera.

Powiązane problemy