Adam Shaw 8 лет назад
Родитель
Сommit
1ae3e89c52
3 измененных файлов с 11 добавлено и 13 удалено
  1. 6 7
      src/View.js
  2. 2 1
      src/component/DateComponent.js
  3. 3 5
      src/models/EventManager.js

+ 6 - 7
src/View.js

@@ -676,14 +676,13 @@ var View = FC.View = InteractiveDateComponent.extend({
 	------------------------------------------------------------------------------------------------------------------*/
 
 
-	onAfterEventsRender: function(segs) { // could be an empty array, which is fine
-		var renderedEventSegs = this.renderedEventSegs;
+	onAfterEventsRender: function(segs) {
+		var notYetQueued = !this.renderedEventSegs;
+		var renderedEventSegs = notYetQueued ? (this.renderedEventSegs = []) : this.renderedEventSegs;
 
-		if (renderedEventSegs) { // triggerEventsRendered already queued to run?
-			renderedEventSegs.push.apply(renderedEventSegs, segs); // append
-		}
-		else {
-			this.renderedEventSegs = [].concat(segs);
+		renderedEventSegs.push.apply(renderedEventSegs, segs); // append
+
+		if (notYetQueued) {
 			this.whenSizeUpdated(this.triggerEventsRendered);
 		}
 	},

+ 2 - 1
src/component/DateComponent.js

@@ -91,8 +91,9 @@ var DateComponent = FC.DateComponent = Component.extend({
 
 	requestRender: function(method, args, namespace, actionType) {
 		var _this = this;
+		var renderQueue = this._getView().calendar.renderQueue;
 
-		this._getView().calendar.renderQueue.queue(function() {
+		renderQueue.queue(function() {
 			method.apply(_this, args);
 		}, this.uid, namespace, actionType);
 	},

+ 3 - 5
src/models/EventManager.js

@@ -192,14 +192,12 @@ var EventManager = Class.extend(EmitterMixin, ListenerMixin, {
 
 
 	bindPeriod: function(eventPeriod) {
-		var _this = this;
-
-		this.listenToAndEmit(eventPeriod, {
+		this.listenTo(eventPeriod, {
 			'before:receive': function() {
-				_this.calendar.startBatchRender();
+				this.calendar.startBatchRender();
 			},
 			'after:receive': function() {
-				_this.calendar.stopBatchRender();
+				this.calendar.stopBatchRender();
 			}
 		});
 	},