classes: "blerg-main",
currentView: null,
updateView: function(objdef) {
- if (!this.currentView || this.currentView.kind != this.currentView.kind) {
+ if (!this.currentView || objdef.kind != this.currentView.kind) {
this.destroyComponents();
this.currentView = this.createComponent(objdef);
this.currentView.render();
} else {
- for (var i in objdef)
- this.currentView.setProperty(i, objdef[i])
+ // We don't want to invoke any change handlers until
+ // these are all set, so we do that ourselves
+ for (var i in objdef) {
+ if (i == 'kind') continue;
+ this.currentView[i] = objdef[i];
+ }
+ for (var i in objdef) {
+ if (i == 'kind') continue;
+ this.currentView[i + 'Changed'] && this.currentView[i + 'Changed']();
+ }
}
}
});