pass urlRouter and navigation as view model options

This commit is contained in:
Bruno Windels 2020-10-06 18:05:02 +02:00
parent 514095da7a
commit 5ab947e7de

View File

@ -22,15 +22,16 @@ import {EventEmitter} from "../utils/EventEmitter.js";
import {Disposables} from "../utils/Disposables.js"; import {Disposables} from "../utils/Disposables.js";
export class ViewModel extends EventEmitter { export class ViewModel extends EventEmitter {
constructor({clock, emitChange} = {}) { constructor(options = {}) {
super(); super();
this.disposables = null; this.disposables = null;
this._isDisposed = false; this._isDisposed = false;
this._options = {clock, emitChange}; this._options = options;
} }
childOptions(explicitOptions) { childOptions(explicitOptions) {
return Object.assign({}, this._options, explicitOptions); const {navigation, urlRouter, clock} = this._options;
return Object.assign({navigation, urlRouter, clock}, explicitOptions);
} }
track(disposable) { track(disposable) {
@ -90,4 +91,12 @@ export class ViewModel extends EventEmitter {
get clock() { get clock() {
return this._options.clock; return this._options.clock;
} }
get urlRouter() {
return this._options.urlRouter;
}
get navigation() {
return this._options.navigation;
}
} }