I am worked though the basic tutorial of Om and used it as a starting point for a small sparetime project. Of course it didn't went as smoothly as I hoped it would.
The error appeared when I was trying to add new data to the application state before I implemented om/IInitState and created a property for tasks in the state object. add-task-view is called in om/IRenderState#render-state of the aggregating component ... so I was under the impression everything was implemented similar to the contacts-view add-contact in https://github.com/swannodette/om/wiki/Basic-Tutorial concerning the render phases. ;; ;; Event handler ;; (defn add-new-task [tasks owner] (.log js/console "callback/handle-new-task" tasks) (let [title (-> (om/get-node owner "new-task-title") .-value) description (-> (om/get-node owner "new-task-description") .-value) tags (-> (om/get-node owner "new-task-tags") .-value)] (.log js/console "new task:" title description tags) (om/transact! tasks #(conj % (Task. "task-2" "me" "me" title [tags] description))))) ;; ;; AddActivityView ;; https://github.com/floriansalihovic/shunyata/issues/9 ;; (defn add-task-view "Component used to add new tasks." [app owner] (reify ;; when not implemented, add-new-task will throw an error is app is passed. om/IInitState (init-state [this] {:tasks (:tasks(:project app))}) om/IRenderState (render-state [this state] (.log js/console "add-task-view#render-state") (dom/div nil (dom/h3 nil (i18n :task)) (dom/label nil (i18n :title) (dom/input #js {:type "text" :ref "new-task-title"})) (dom/label nil (i18n :description) (dom/input #js {:type "text" :ref "new-task-description"})) (dom/label nil (i18n :tags) (dom/input #js {:type "text" :ref "new-task-tags"})) (dom/div nil (dom/button #js {:onClick #(add-new-task (:tasks state) owner)} "☑")))))) So my question basically is: is my soluation "idiomatic/clean" solution when creating data in Om. -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/clojurescript.
