FIX: Don't remove all events, only the ones we created

This commit is contained in:
Robin Ward 2016-06-14 13:40:30 -04:00
parent 1dae7fbe04
commit bdd15d5452
2 changed files with 11 additions and 5 deletions

View file

@ -16,6 +16,7 @@ export default Ember.Component.extend({
_widgetClass: null,
_renderCallback: null,
_childEvents: null,
_dispatched: null,
init() {
this._super();
@ -31,6 +32,7 @@ export default Ember.Component.extend({
this._childEvents = [];
this._connected = [];
this._dispatched = [];
},
didInsertElement() {
@ -52,7 +54,10 @@ export default Ember.Component.extend({
},
willDestroyElement() {
this._childEvents.forEach(evt => this.appEvents.off(evt));
this._dispatched.forEach(evt => {
const [eventName, caller] = evt;
this.appEvents.off(eventName, caller);
});
Ember.run.cancel(this._timeout);
},
@ -73,9 +78,10 @@ export default Ember.Component.extend({
dispatch(eventName, key) {
this._childEvents.push(eventName);
this.appEvents.on(eventName, refreshArg => {
this.eventDispatched(eventName, key, refreshArg);
});
const caller = refreshArg => this.eventDispatched(eventName, key, refreshArg);
this._dispatched.push([eventName, caller]);
this.appEvents.on(eventName, caller);
},
queueRerender(callback) {

View file

@ -95,7 +95,7 @@ export default Ember.Component.extend({
.off("composer:resized", this, this._dock)
.off('composer:closed', this, this._dock)
.off('topic:scrolled', this, this._dock)
.off('topic:current-post-scrolled')
.off('topic:current-post-scrolled', this, this._topicScrolled)
.off('topic-progress:keyboard-trigger');
},