batmanjs/batman — pull request #888 by TheJeff (2013-11-07 17:46:39+00:00)
Title: Move dataChange to Batman.DOM.AbstractCollectionBinding, since it is very generic

The ```dataChange``` event that was in ```IteratorBinding``` is pretty generic and could be usable for other objects (I have a private object using it.

@nickjs this was my final solution to my iterator binding. So instead of doing this:

```
@controller.observe 'event_period.event_times', (newSet) =>
@lastSet.off 'itemsWereAdded', @refreshTimes if @lastSet
newSet.on 'itemsWereAdded', @refreshTimes
@lastSet = newSet
```
Now I can do:

```
@binding ||= new App.EventsShowTimeChartView.Binding(keyPath: "event_period.event_times", view: @, node: @node, attr: 'time')
```
with this binding Binding:
```
class App.EventsShowTimeChartView.Binding extends Batman.DOM.AbstractCollectionBinding
handleArrayChanged: (newItems) ->
@view.refreshTimes()
```
Thoughts?