vasille
Version:
The first Developer eXperience Orientated front-end framework (core library).
28 lines (27 loc) • 793 B
JavaScript
import { RepeatNode } from "./repeat-node.js";
/**
* Base class of default views
* @class BaseView
* @extends RepeatNode
* @implements IModel
*/
export class BaseView extends RepeatNode {
constructor(input, runner, name) {
super(input, runner, name);
}
compose() {
this.addHandler = (id, item) => {
this.createChild(this.input, id, item);
};
this.removeHandler = (id, item) => {
this.destroyChild(id, item);
};
this.input.model.listener.onAdd(this.addHandler);
this.input.model.listener.onRemove(this.removeHandler);
}
destroy() {
this.input.model.listener.offAdd(this.addHandler);
this.input.model.listener.offRemove(this.removeHandler);
super.destroy();
}
}