arturadib/agility — pull request #87 by pindia (2012-07-04 02:06:40+00:00)
Title: More flexible event binding

Adds a public method `bindFrom` and private method `unbind` to enable more powerful event binding.

`bindFrom` is useful for short-lived objects to subscribe to events in long-lived, shared, or global objects. For example, many temporary objects may want to subscribe to a certain model key in a global settings object. When using just `bind`, many event handlers can pile up on long-lived objects and there can be other undesired side effects from event handlers being called on destroyed objects. `bindFrom` also provides part of the foundation for eventual model-model bindings.

`bindFrom` only works with Agility events because of the limited use-cases for dynamically binding and unbinding DOM events.

`unbind` is a private method used to implement `bindFrom`. It's private to discourage unbinding of all handlers for a name rather than the selective unbinding provided by `bindFrom`.