arturadib / agility

Javascript MVC for the "write less, do more" programmer
http://agilityjs.com
MIT License
542 stars 70 forks source link

More flexible event binding #87

Open pindia opened 12 years ago

pindia commented 12 years ago

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.