Skip to content

Commit 7d922d3

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents 38776e5 + 40da0e9 commit 7d922d3

File tree

3 files changed

+60
-21
lines changed

3 files changed

+60
-21
lines changed

src/GridItem.vue

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -190,35 +190,59 @@
190190
},
191191
created () {
192192
var self = this;
193-
eventBus.$on('updateWidth', function(width) {
193+
194+
// Accessible refernces of functions for removing in beforeDestroy
195+
self.updateWidthHandler = function(width) {
194196
self.updateWidth(width);
195-
});
196-
eventBus.$on('compact', function(layout) {
197+
};
198+
199+
self.compactHandler = function(layout) {
197200
self.compact(layout);
198-
});
199-
eventBus.$on('setDraggable', function(isDraggable) {
201+
};
202+
203+
self.setDraggableHandler = function(isDraggable) {
200204
self.isDraggable = isDraggable;
201-
});
202-
eventBus.$on('setResizable', function(isResizable) {
205+
};
206+
207+
self.setResizableHandler = function(isResizable) {
203208
self.isResizable = isResizable;
204-
});
205-
eventBus.$on('setRowHeight', function(rowHeight) {
209+
};
210+
211+
self.setRowHeightHandler = function(rowHeight) {
206212
self.rowHeight = rowHeight;
207-
});
213+
};
214+
215+
self.directionchangeHandler = (direction) => {
216+
var direction = (document.dir != undefined) ?
217+
document.dir :
218+
document.getElementsByTagName("html")[0].getAttribute("dir");
219+
this.rtl = (direction == "rtl");
220+
this.compact();
221+
};
222+
223+
eventBus.$on('updateWidth', self.updateWidthHandler);
224+
eventBus.$on('compact', self.compactHandler);
225+
eventBus.$on('setDraggable', self.setDraggableHandler);
226+
eventBus.$on('setResizable', self.setResizableHandler);
227+
eventBus.$on('setRowHeight', self.setRowHeightHandler);
228+
eventBus.$on('directionchange', self.directionchangeHandler);
229+
208230
/*eventBus.$on('setColNum', function(colNum) {
209231
self.cols = colNum;
210232
});*/
211233
var direction = (document.dir !=undefined) ?
212234
document.dir :
213235
document.getElementsByTagName("html")[0].getAttribute("dir");
214236
this.rtl = (direction == "rtl");
215-
eventBus.$on('directionchange', (direction) => {
216-
var direction = (document.dir != undefined) ?
217-
document.dir :
218-
document.getElementsByTagName("html")[0].getAttribute("dir");
219-
this.rtl = (direction == "rtl");
220-
this.compact();
221-
});
237+
},
238+
beforeDestroy: function(){
239+
//Remove listeners
240+
eventBus.$off('updateWidth', self.updateWidthHandler);
241+
eventBus.$off('compact', self.compactHandler);
242+
eventBus.$off('setDraggable', self.setDraggableHandler);
243+
eventBus.$off('setResizable', self.setResizableHandler);
244+
eventBus.$off('setRowHeight', self.setRowHeightHandler);
245+
eventBus.$off('directionchange', self.directionchangeHandler);
222246
},
223247
mounted: function() {
224248
this.cols = this.$parent.colNum;

src/GridLayout.vue

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,23 @@
9191
created () {
9292
var self = this;
9393
94-
eventBus.$on('resizeEvent', function(eventType, i, x, y, h, w) {
94+
// Accessible refernces of functions for removing in beforeDestroy
95+
self.resizeEventHandler = function(eventType, i, x, y, h, w) {
9596
self.resizeEvent(eventType, i, x, y, h, w);
96-
});
97-
eventBus.$on('dragEvent', function(eventType, i, x, y, h, w) {
97+
};
98+
99+
self.dragEventHandler = function(eventType, i, x, y, h, w) {
98100
self.dragEvent(eventType, i, x, y, h, w);
99-
});
101+
};
102+
103+
eventBus.$on('resizeEvent', self.resizeEventHandler);
104+
eventBus.$on('dragEvent', self.dragEventHandler);
105+
},
106+
beforeDestroy: function(){
107+
//Remove listeners
108+
eventBus.$off('resizeEvent', self.resizeEventHandler);
109+
eventBus.$off('dragEvent', self.dragEventHandler);
110+
window.removeEventListener("resize", self.onWindowResize)
100111
},
101112
mounted: function() {
102113
this.$nextTick(function () {

src/ResponsiveGridLayout.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@
9797
lastLayoutLength: 0,
9898
};
9999
},
100+
beforeDestroy: function(){
101+
//Remove listeners
102+
window.removeEventListener("resize", self.onWindowResize)
103+
},
100104
mounted() {
101105
this.$nextTick(function () {
102106
validateLayout(this.layout);

0 commit comments

Comments
 (0)