gmac / backbone.epoxy

Declarative data binding and computed models for Backbone
http://epoxyjs.org
MIT License
615 stars 89 forks source link

My computed's set function return value isn't getting merged into the model when triggered from the ui #126

Open OneGeek opened 9 years ago

OneGeek commented 9 years ago

I have a view with a computed property that defines a set function which returns an object with some properties set. I've bound this to an <input> with the declaration value:myComputed.

The documentation of computeds describes that the return value of a computed's set is merged into the model when called.

I've confirmed the following

Looking at the source code I see the value I return from set gets as far as being returned from a call to accessor(self.get(self.$el, readAccessor(accessor), evt)) in the definition of EpoxyBinding, but nothing is done with it at that point.

My question

Am I misunderstanding the documentation here or is this a bug?

docmattman commented 8 years ago

I'm having the same issue. Have you found a solution?

OneGeek commented 8 years ago

I do not believe I managed to make this happen.

jekuno commented 8 years ago

This works for me. Did you bind your computed correctly to an event e.g. 'input#my-computed': "value:myComputed, events:['input']"

Did you check that the attributes you return in the set function belong to a model defined in bindingSources (e.g. the model associated to the view)? Also ensure that in the set of myComputed you do not try to set this attribute directly (which would result in a recursive set call).