Skip to content

Instantly share code, notes, and snippets.

@selfsame
Created January 20, 2014 16:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save selfsame/8523506 to your computer and use it in GitHub Desktop.
Save selfsame/8523506 to your computer and use it in GitHub Desktop.
(defn ticker2 [data owner]
(reify
om/IInitState
(init-state [_] {:s 0})
om/IRender
(render [_]
(let [state (om/get-state owner)]
(dom/ul #js {:onClick #(om/transact! data :t inc)}
(dom/li nil (str "data: " (:t data )) )
(dom/li nil (str "state: " (:s state )) )) ))))
(defn ticker [data owner]
(reify
om/IInitState
(init-state [_] {:s 0})
om/IRender
(render [_]
(let [state (om/get-state owner)]
(om/transact! data :t inc)
(om/set-state! owner :s (inc (:s state)))
(dom/ul nil
(dom/li nil (str (:name data )) )
(dom/li nil (str "data: " (:t data )) )
(dom/li nil (str "state: " (:s state )) )
(om/build ticker2 data {:state state})
) ))
om/IDidUpdate
(did-update [_ _ _ _]
(om/transact! data :t inc)
(om/set-state! owner :s (inc (:s (om/get-state owner))))
)))
(def D (atom {:t 0 :name "joe"}))
(om/root D ticker (.-body js/document))
(swap! D merge {:name "fred"})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment