Selaa lähdekoodia

View::redisplay

Adam Shaw 10 vuotta sitten
vanhempi
sitoutus
b3be5fba38
1 muutettua tiedostoa jossa 19 lisäystä ja 1 poistoa
  1. 19 1
      src/common/View.js

+ 19 - 1
src/common/View.js

@@ -309,6 +309,22 @@ var View = FC.View = Class.extend({
 	},
 
 
+	// If the view has already been displayed, tears it down and displays it again.
+	// Will re-render the events if necessary, which display/clear DO NOT do.
+	// TODO: make behavior more consistent.
+	redisplay: function() {
+		if (this.isSkeletonRendered) {
+			var wasEventsRendered = this.isEventsRendered;
+			this.clearEvents(); // won't trigger handlers if events never rendered
+			this.clearView();
+			this.displayView();
+			if (wasEventsRendered) { // only render and trigger handlers if events previously rendered
+				this.displayEvents();
+			}
+		}
+	},
+
+
 	// Displays the view's non-event content, such as date-related content or anything required by events.
 	// Renders the view's non-content skeleton if necessary.
 	// Can be asynchronous and return a promise.
@@ -317,7 +333,9 @@ var View = FC.View = Class.extend({
 			this.renderSkeleton();
 			this.isSkeletonRendered = true;
 		}
-		this.setDate(date);
+		if (date) {
+			this.setDate(date);
+		}
 		if (this.render) {
 			this.render(); // TODO: deprecate
 		}