Explorar o código

protect against uneven viewRender/viewDestroy triggers

Adam Shaw %!s(int64=8) %!d(string=hai) anos
pai
achega
8c6e6bbdb4
Modificáronse 1 ficheiros con 9 adicións e 2 borrados
  1. 9 2
      src/common/View.js

+ 9 - 2
src/common/View.js

@@ -16,6 +16,7 @@ var View = FC.View = Model.extend({
 	renderQueue: null,
 	renderQueue: null,
 	isDatesRendered: false,
 	isDatesRendered: false,
 	isEventsRendered: false,
 	isEventsRendered: false,
+	isBaseRendered: false, // related to viewRender/viewDestroy triggers
 
 
 	isRTL: false,
 	isRTL: false,
 	isSelected: false, // boolean whether a range of time is user-selected or not
 	isSelected: false, // boolean whether a range of time is user-selected or not
@@ -378,13 +379,19 @@ var View = FC.View = Model.extend({
 
 
 	// Signals that the view's content has been rendered
 	// Signals that the view's content has been rendered
 	triggerRender: function() {
 	triggerRender: function() {
-		this.publiclyTrigger('viewRender', this, this, this.el);
+		if (!this.isBaseRendered) {
+			this.isBaseRendered = true;
+			this.publiclyTrigger('viewRender', this, this, this.el);
+		}
 	},
 	},
 
 
 
 
 	// Signals that the view's content is about to be unrendered
 	// Signals that the view's content is about to be unrendered
 	triggerUnrender: function() {
 	triggerUnrender: function() {
-		this.publiclyTrigger('viewDestroy', this, this, this.el);
+		if (this.isBaseRendered) {
+			this.isBaseRendered = false;
+			this.publiclyTrigger('viewDestroy', this, this, this.el);
+		}
 	},
 	},