2013-07-09 39 views
5

Tôi muốn đặt thuộc tính "giá trị" của phần tử "đầu vào" bằng Clojurescript, nhưng tôi gặp sự cố với cú pháp của setProperties trong goog.com. Có ai có một ví dụ làm việc?Cách đặt thuộc tính của phần tử DOM trong Clojurescript?

Cập nhật ------

Điều này dường như làm việc:

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

Trả lời

8

Nếu bạn cần phải tạo các đối tượng JS throwaway để sử dụng với các API JS, bạn có thể làm như vậy trực tiếp sử dụng js-obj:

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

Tất nhiên nếu bạn đã có bản đồ ClojureScript với các mục thích hợp, clj->js sẽ thuận tiện hơn.

Quan trọng hơn, bạn có thể muốn xem xét chuyển sang thư viện ClojureScript để thao tác DOM. Một số có sẵn:

  • Luke VanderHart của Domina, mà có thể đã là người đầu tiên, được sử dụng bởi Enfocus (được liệt kê dưới đây) và Pedestal;

  • Prismatic của dommy, đáng chú ý do công đức riêng của mình cũng như các bài đăng trên blog rất thú vị về nó trên Prismatic's blog (có thể đóng vai trò như một lời giới thiệu tuyệt vời để những lợi ích của macro: first one, second one, third one);

  • Creighton Kirkendall's Enfocus, tức là một thư viện giống như một thư viện cho ClojureScript, thật tuyệt vời;

  • Kevin Lynagh's Singult, thư viện kiểu Hiccup cho ClojureScript với chức năng tuyệt vời để hợp nhất các thay đổi đối với DOM, thay vì hiển thị lại từ đầu.

Các vấn đề liên quan