om/transact takes a path as its third argument (a key or a vector of keys), but you are passing in a function (conj):
https://github.com/swannodette/om/wiki/Documentation#transact With om/update! you are using the 2 parameter variant, which is why that works: https://github.com/swannodette/om/wiki/Documentation#update The versions of om/transact! are: (om/transact! cursor function) (om/transact! cursor path function) (om/transact! cursor path function tag) Note that it's *not* like swap! where you can pass additional arguments to function after the function. On 7 May 2014 06:16, Roger Gilliar <[email protected]> wrote: > services is a cursor to an array. > > The following works: > > (let [new-services (conj @services {:name (str "New " (inc (count > @services)))})] > (om/update! services new-services)) > > the following doesn't > > (om/transact! services conj {:name (str "New Service ")}) > > and gives me: > > Uncaught Error: Vector's key for assoc must be a number. > > Why ? > > -- > 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.
