2014-04-09 52 views
7

Tôi đã làm theo hướng dẫn om. Im sử dụng Bảng Light để thiết lập kết nối Trình duyệt bên ngoài. Ngoài ra, trong mã clojurescript của tôi, tôi gọi số (enable-console-print!) để gửi các câu lệnh println của tôi tới bảng điều khiển của trình duyệt.Làm thế nào để kiểm tra các đối tượng om?

Vấn đề là khi tôi in một phần om .. cái gì đó như:

(println (om/build my-component-function my-data))

Kết quả tôi nhận được là:

#<[object Object]>

Tôi có cùng một vấn đề nếu tôi chỉ cần đánh số (om/build my-component-function my-data) trong LightTable.

Có thể kiểm tra đối tượng này sẽ hữu ích khi gỡ lỗi. Làm thế nào tôi có thể in một cái gì đó có ý nghĩa hơn?

Trả lời

10

1 Hãy thử sử dụng (.log js/console object) đó là ClojureScript tương đương với console.log(object);

2 Bạn cũng có thể cài đặt React Developer Tools extension for Google Chrome, mà sẽ cho phép bạn duyệt Các thành phần React/Om bạn có trên trang

+1

Tôi cũng muốn thêm (dom/render) -to-str) đã rất hữu ích khi gỡ lỗi (https://github.com/swannodette/om/wiki/Documentation#render-to-str) – sthomps

3

Như bạn có thể đọc trên các tập tin README của dự án Om https://github.com/swannodette/om

Bạn có thể sử dụng ankha, một cái nhìn thanh tra EDN. Sau đó, bạn có thể in như edn thành phần của bạn và vượt qua để ankha. giải pháp khác có thể (.dir js/console object) và bạn sẽ có thể kiểm tra thành phần của bạn trên firebug hoặc chrome console

+0

Chỉ cần cố gắng ankha nhưng nó không có vẻ làm việc cho om/xây dựng các đối tượng. Nó vẫn sẽ in # <[object Object]>. Cảm ơn cho tip mặc dù, hoạt động tuyệt vời cho các đối tượng clojure khác. – sthomps

+0

@sthomps bạn đã thử (thành phần .dir js/console) chưa? – tangrammer

+0

(thành phần .dir js/console) đưa ra một danh sách các hàm được xác định trong đối tượng nhưng không cung cấp thông tin trên phần tử dom mà nó cố gắng hiển thị hoặc dữ liệu tôi đã nhập. – sthomps

2

Hãy thử cljs-devtools. Thư viện này sử dụng "trình định dạng tùy chỉnh" để in các cấu trúc dữ liệu clojure đẹp mắt trong Bảng điều khiển Javascript của Chrome.

Khi bạn kích hoạt và định dạng tuỳ chỉnh và tích hợp thư viện trong dự án của bạn này khá nên in đối tượng của bạn:

(.log js/console your_namespace.your_object) 

Cũng gõ vào giao diện điều khiển nên làm việc (với hoàn thành mã)

your_namespace.your_object 

Disclaimer: Tính năng này là thử nghiệm trong Công cụ dành cho Chrome Dev và tôi là tác giả của thư viện.

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