1
간단한 ClojureScript/Om 응용 프로그램이 있습니다. 조금 부러진 것 같습니다.ClojureScript/Om : 렌더링 된 HTML에 특성이 없습니다.
<div id="app">
<div data-reactid=".0">Pumpkin</div>
</div>
가 왜 div
이 ID #some-id
을 가지고 있지 않습니다
(ns demo.core
(:require-macros [cljs.core.async.macros :refer [go]])
(:require [goog.events :as events]
[cljs.core.async :as async :refer [>! <! put! chan]]
[om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]
[goog.events.EventType :as EventType]
[clojure.string :as string]))
(defn layout
[app owner]
(reify
om/IRender
(render [_]
(dom/div {:id "some-id"} "Pumpkin"))))
(defn main []
(om/root
layout
{}
{:target (. js/document (getElementById "app"))}))
그것은이 HTML을 렌더링 :
이 코어 파일입니까?
좋아, 그걸 사 ...하지만 임의의 비 js 속성을 어떻게 설정합니까? 나는 #js가 필요하지 않고 {: className "foo"} 대신 {: class "foo"}를 사용할 수있는 다른 프로젝트의 코드를 가지고 있습니다. 명백하게 나는 그 구별을보기에 충분하게 잘 일어나지 않는지 이해하지 못한다. 어떤 팁? –
@SirRobert "JS 속성"을 설정하지 않았습니다. '#js {}'는 Clojure (Script) 맵보다는 JavaScript 객체를 생성합니다. 이것은 옴이 아니라 [ClojureScript의 일부] (http://dev.clojure.org/jira/browse/CLJS-717)입니다. 이것은 React에 곧바로 전달되기 때문에 필요합니다. CLASS 맵이 아닌 JS 오브젝트 만 이해합니다. 자세한 정보는 [React 's supported DOM attributes] (https://facebook.github.io/react/docs/tags-and-attributes.html#html-attributes)를 참조하십시오. –
@SirRobert 즉,'{: class "foo"} "가 다른 프로젝트에서 왜 작동했는지 모르겠습니다. 그것은 옴 (Om) 핸들/특별히 (내가 이것을 테스트하지 않은) 핸들 또는 [대체 DOM 구문] (https://github.com/omcljs/om#can-i-use-a-different- html-syntax)가 사용되었습니다. –