So, in this case, would you want to grab the om.core/value during the render and have the click handler close over *that* instead of the cursor? That is, put!ting it on the channel would mean “delete this thing I’m displaying, if it still exists”.
Peter On Wed, Oct 15, 2014 at 12:39 PM, David Nolen <[email protected]> wrote: > Yes that's correct. om.core/value will give you the rendered value, > deref will give you the current state. > > David > > On Wed, Oct 15, 2014 at 12:38 PM, Leon Grapenthin > <[email protected]> wrote: > > On Tuesday, October 14, 2014 7:58:28 PM UTC+2, David Nolen wrote: > >> om.core/value, om.core/path, om.core/state are not going to change and > >> > >> can be used. > > > > Thank you for clearing that up > > > >> In the case of om.core/value the value may well be stale > >> > >> - thus deref - but even then the value may have been deleted. > >> > > > > With om.core/value the user can rely that only the value /she can see/ > could be deleted (if it is still up to date), because it is consistent with > what was rendered to her. > > > > With deref, a value that /she has not yet seen/ could be deleted, > because it could have been changed but not yet rendered. > > > > Is this correct? > > > >> > >> > >> David > >> > >> > >> > >> On Tue, Oct 14, 2014 at 1:43 PM, Leon Grapenthin > >> > >> <[email protected]> wrote: > >> > >> > Thank you, Moritz. However, since it is not documented, how do you > know? By study of the implementation? > >> > >> > > >> > >> > Since there is not a single defn- in om.core, is it really API > exposed and there to stay? > >> > >> > > >> > >> > Would using it like I suggested in the example really have > consistency benefits? > >> > >> > > >> > >> > > >> > >> > On Sunday, October 12, 2014 11:48:54 PM UTC+2, Moritz Ulrich wrote: > >> > >> >> Am 12.10.2014 21:33 schrieb "Leon Grapenthin" <[email protected] > >: > >> > >> >> > >> > >> >> > > >> > >> >> > >> > >> >> > Regarding this ( > https://github.com/swannodette/om/wiki/Basic-Tutorial#debugging-om-components) > section of the om tutorial: > >> > >> >> > >> > >> >> > > >> > >> >> > >> > >> >> > Couldn't the click handler in theory delete a version of the > contact that has not been rendered to the user? > >> > >> >> > >> > >> >> > > >> > >> >> > >> > >> >> > E. g. Wouldn't > >> > >> >> > >> > >> >> > > >> > >> >> > >> > >> >> > #js {:onClick (let [rendered-contact (into {} contact)] > >> > >> >> > >> > >> >> > (fn [e] (put! delete rendered-contact)))} > >> > >> >> > >> > >> >> > > >> > >> >> > >> > >> >> > be the only way to make the click handler consistent with what is > displayed to the user? - If so, could we get an operation to retrieve the > rendered value during the render phase as non-cursor to close over it > (probably also deref)? > >> > >> >> > >> > >> >> `om/value' > >> > >> >> > >> > >> >> > If not, how should I take "Thus you are not allowed to use cursors > outside of the render phase as this is almost certainly a concurrency bug!" > - How exactly is that /not/ what we are doing in the click handler of the > tutorial? > >> > >> >> > >> > >> >> > > >> > >> >> > >> > >> >> > If it doesn't make a difference, please explain 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. > > > > -- > > 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. > -- Visuals: http://youtube.com/peeja Words: http://blog.peeja.com/ Conversation: (603) 548-1203 -- 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.
