mirror of
https://github.com/nasa/openmct.git
synced 2025-06-14 21:28:12 +00:00
[API] Use subclass style
This commit is contained in:
@ -1,35 +1,19 @@
|
||||
define(['EventEmitter'], function (EventEmitter) {
|
||||
function View(definition) {
|
||||
var self = this;
|
||||
var state = definition.state ? definition.state() : {};
|
||||
|
||||
function render() {
|
||||
if (definition.render) {
|
||||
definition.render(self.elements(), self.model(), state);
|
||||
}
|
||||
}
|
||||
|
||||
function View() {
|
||||
EventEmitter.call(this);
|
||||
this.state = { elements: [], model: undefined };
|
||||
|
||||
if (definition.elements) {
|
||||
this.elements(definition.elements());
|
||||
}
|
||||
if (definition.initialize) {
|
||||
definition.initialize(this.elements(), state, render);
|
||||
}
|
||||
this.on('model', render);
|
||||
}
|
||||
|
||||
View.prototype = Object.create(EventEmitter.prototype);
|
||||
|
||||
['elements', 'model'].forEach(function (method) {
|
||||
View.prototype[method] = function (value) {
|
||||
this.viewState =
|
||||
this.viewState || { elements: [], model: undefined };
|
||||
if (arguments.length > 0) {
|
||||
this.state[method] = value;
|
||||
this.viewState[method] = value;
|
||||
this.emit(method, value);
|
||||
}
|
||||
return this.state[method];
|
||||
return this.viewState[method];
|
||||
}
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user