This is my first take on providing functionality for modeling events as relationships within our views.
listenTo: function(subject, evt, observerCallback) {
var relationshipIndex = this.get('relationshipIndex') || [],
relationship = {
subject: subject,
evt: evt,
observerCallback: observerCallback
};
subject.on(evt, observerCallback);
this.set('relationshipIndex', relationshipIndex.push(relationship));
},
stopListening: function() {
var relationshipIndex = this.get('relationshipIndex') || [];
_.each(relationshipIndex, function(relationship) {
var subject = relationship.subject, evt = relationship.evt,
observerCallback = relationship.observerCallback;
subject.off(evt, observerCallback);
});
},
This article describes modeling events as relationships with Backbone and Javascript.
TODO:
- add funcitonality for monitoring if the subject is changed out with a different subject.