News for hackers. Stuff that matters.
Re:Announcing Amber.js by jashkenas on Thursday December 08, 2011 @01:52PM (#3330503)
... sure, it depends. But there are even more reasons than over-propagation of change events to avoid strict two-way model/view binding.

One of them is that the data often isn't the same. The view displays a computed value from the model, and the model should receive the "real" value upon a change. For example:

    <span data-value="<%= feed.get('kind') %>">
      <%= feed.entitle() %>
    </span>

    ... becomes ...

    <span data-value="article">
      NYT Article
    </span>
When the DOM element is chosen, the model's value should be "article", not "NYT Article" ... and perhaps the change should happen immediately, and perhaps the change should happen only after a "Save" button is clicked.

With concrete two-way binding, you may spend more time configuring all of your DOM elements, and configuring when your models should be considered "changed", and when they shouldn't -- than you gain by tying them together in the first place.

Re:Announcing Amber.js by benatkin on Thursday December 08, 2011 @02:57PM (#3330824)
These are simple changes to make under Knockout.js and I assume Amber.js too. It's easy to see how to do this from the Knockout.js tutorial. A model/view binding system won't slow these kinds of customizations down.
Re:Announcing Amber.js by ErrantX on Thursday December 08, 2011 @04:06PM (#3331125)
But that situation is already solved in the MVC world; with filters, callbacks and validation.

Having just finished a pretty complex "application" of this sort (which cannibalized Knockout to get what I needed...) my view is that most stuff does not need any sort of filtering. Or if it does (and the big example I could give here would be timestamps) a lot of the filtering can be standardised.