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.

Reply via email to