(def app-state
(atom {:items [{:text "cat"} {:text "dog"} {:text "bird"}]}))
(defn items []
(om/ref-cursor (:items (om/root-cursor app-state))))
(simplified)
Updates (transact!) are reflected in the global atom
(motivation)
(problems)
(workarounds)
(def app-state
(atom {:items [{:text "cat"} {:text "dog"} {:text "bird"}]}))
(defn items []
(om/ref-cursor (:items (om/root-cursor app-state))))
(defn sub-view [{:keys [title]} owner]
(reify
om/IRender
(render [_]
(let [xs (om/observe owner (items))]
(dom/div nil
(dom/h2 nil title)
(apply dom/ul nil
(map #(dom/li nil (:text %)) xs)))))))