Jeez, I have been looking into this for more than one day now, what I was missing was to update the :id-key option. Now I can pass my unique id and the changed value to the server.
Am Samstag, 26. April 2014 16:26:02 UTC+2 schrieb Sven Richter: > Am Samstag, 26. April 2014 16:19:34 UTC+2 schrieb David Nolen: > > > om-sync is little more than a basic proof of concept. Pull requests that > > enhance and/or extend the behavior are welcome. > > > > Yea, I read that. However, the error is not within om-sync I guess. I did > your intermediate tutorial and there I was able to send the whole map to the > server. So I guess something is wrong on my side. Or maybe I miss something > from the tutorial that I additionally need. > > > > Best Regards, > > Sven > > > > > > > > > > On Saturday, April 26, 2014, Sven Richter <[email protected]> wrote: > > > > > > Hi, > > > > > > > > > > > > I am trying to use om-sync to update my server when something in my app > > state changes. But, whenever I do that I only send one key of my whole map > > to the server, which is useless as some metainformation such as an unique > > id is missing. > > > > > > > > > > > > > > > I put together a small working example which shows exactly this problem. > > You can copy this into a file and after clicking a button you will see that > > the put request sends only a map with one key: > > > > > > > > > > > > (ns om-async.core > > > > > > (:require-macros [cljs.core.async.macros :refer [go]]) > > > > > > (:require [cljs.core.async :as async :refer [put! chan alts!]] > > > > > > [goog.dom :as gdom] > > > > > > [om.core :as om :include-macros true] > > > > > > [om.dom :as dom :include-macros true] > > > > > > [om-sync.core :refer [om-sync]] > > > > > > [om-sync.util :refer [tx-tag edn-xhr]] > > > > > > [cljs-time.core :as cljs-time] > > > > > > [cljs-time.format :as cljs-format])) > > > > > > > > > > > > (def test-state (atom {:releases {:url "/releases" :coll [{:keyone > > "testvalue" :keytwo "testval2"} {:keyone "testvalmap2" :keytwo > > "tesval2map2"}]}})) > > > > > > > > > > > > > > > > > > (defn test-view-deeper [app owner] > > > > > > (reify > > > > > > om/IRenderState > > > > > > (render-state [_ _] > > > > > > (apply dom/div nil > > > > > > (map #(dom/button > > > > > > #js {:onClick (fn [e] (println "clicked > > button") > > > > > > (om/transact! % :keyone (fn [_] > > "newtestval") :update))} > > > > > > (:keyone %)) app))))) > > > > > > > > > > > > (defn test-view [app owner] > > > > > > (reify > > > > > > om/IRenderState > > > > > > (render-state [_ _] > > > > > > (dom/div nil > > > > > > (om/build om-sync (:releases app) > > > > > > {:opts {:view test-view-deeper > > > > > > :filter (comp #{:create :update > > :delete} tx-tag) > > > > > > :id-key :class/id > > > > > > :on-success (fn [res tx-data] (println > > "success " res)) > > > > > > :on-error > > > > > > (fn [err tx-data] > > > > > > (println "error "))}}))))) > > > > > > > > > > > > > > > > > > (let [tx-chan (chan) > > > > > > tx-pub-chan (async/pub tx-chan (fn [_] :txs))] > > > > > > (om/root test-view test-state > > > > > > {:target (gdom/getElement "test") > > > > > > :shared {:tx-chan tx-pub-chan} > > > > > > :tx-listen (fn [tx-data root-cursor] > > > > > > (put! tx-chan [tx-data root-cursor]))})) > > > > > > > > > > > > The put request in chrome looks like this: > > > > > > Request payload: {:keyone "newtestval"} > > > > > > > > > > > > Any Ideas what is wrong here? And how to do it right? > > > > > > > > > > > > Best Regards, > > > > > > Sven > > > > > > > > > > > > -- > > > > > > 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. -- 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.
