use handleEvent in History so we don't have to bind

This commit is contained in:
Bruno Windels 2020-10-19 12:55:10 +02:00
parent 3e34ccb7e1
commit fb273782bf

View File

@ -17,15 +17,12 @@ limitations under the License.
import {BaseObservableValue} from "../../../observable/ObservableValue.js";
export class History extends BaseObservableValue {
constructor() {
super();
this._boundOnHashChange = null;
}
_onHashChange() {
handleEvent(event) {
if (event.type === "hashchange") {
this.emit(this.get());
this._storeHash(this.get());
}
}
get() {
return document.location.hash;
@ -60,13 +57,11 @@ export class History extends BaseObservableValue {
}
onSubscribeFirst() {
this._boundOnHashChange = this._onHashChange.bind(this);
window.addEventListener('hashchange', this._boundOnHashChange);
window.addEventListener('hashchange', this);
}
onUnsubscribeLast() {
window.removeEventListener('hashchange', this._boundOnHashChange);
this._boundOnHashChange = null;
window.removeEventListener('hashchange', this);
}
_storeHash(hash) {