26 lines
603 B
JavaScript
26 lines
603 B
JavaScript
|
|
var id = 1;
|
|
function newKey() {
|
|
return "_view_app_event_" + (id++);
|
|
}
|
|
|
|
function createViewListener(eventName, cb) {
|
|
var extension = {};
|
|
extension[newKey()] = function() {
|
|
this.appEvents.on(eventName, this, cb);
|
|
}.on('didInsertElement');
|
|
|
|
extension[newKey()] = function() {
|
|
this.appEvents.off(eventName, this, cb);
|
|
}.on('willDestroyElement');
|
|
|
|
return extension;
|
|
}
|
|
|
|
function listenForViewEvent(viewClass, eventName, cb) {
|
|
viewClass.reopen(createViewListener(eventName, cb));
|
|
}
|
|
|
|
export { listenForViewEvent, createViewListener };
|
|
export default Ember.Object.extend(Ember.Evented);
|