Fixed memory leak by properly triggering remove. (#339)
This commit is contained in:
parent
fa4b768214
commit
4579543bde
@ -211,6 +211,7 @@ export class LayoutManager {
|
|||||||
|
|
||||||
const layoutTemplate = Template[this.layoutTemplateName];
|
const layoutTemplate = Template[this.layoutTemplateName];
|
||||||
|
|
||||||
|
this.removeViewportContainers();
|
||||||
this.parentNode.innerHTML = '';
|
this.parentNode.innerHTML = '';
|
||||||
this.updateLayoutClass();
|
this.updateLayoutClass();
|
||||||
Blaze.renderWithData(layoutTemplate, data, this.parentNode);
|
Blaze.renderWithData(layoutTemplate, data, this.parentNode);
|
||||||
@ -316,6 +317,7 @@ export class LayoutManager {
|
|||||||
|
|
||||||
const layoutTemplate = Template.gridLayout;
|
const layoutTemplate = Template.gridLayout;
|
||||||
|
|
||||||
|
this.removeViewportContainers();
|
||||||
this.parentNode.innerHTML = '';
|
this.parentNode.innerHTML = '';
|
||||||
Blaze.renderWithData(layoutTemplate, data, this.parentNode);
|
Blaze.renderWithData(layoutTemplate, data, this.parentNode);
|
||||||
|
|
||||||
@ -732,4 +734,22 @@ export class LayoutManager {
|
|||||||
return this.layoutProps.row !== 1 && this.layoutProps.columns !== 1;
|
return this.layoutProps.row !== 1 && this.layoutProps.columns !== 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* removeViewportContainers - Removes viewport containers. Required to
|
||||||
|
* cause onDestroyed to trigger before rendering the layout manager with
|
||||||
|
* new data.
|
||||||
|
*
|
||||||
|
* @return {null}
|
||||||
|
*/
|
||||||
|
removeViewportContainers() {
|
||||||
|
const containers = $('.viewportContainer');
|
||||||
|
|
||||||
|
// NOTE: Trawl through object backwards, as we remove elements as we go.
|
||||||
|
for (let i = containers.length - 1; i >= 0; i--) {
|
||||||
|
const container = containers.get(i);
|
||||||
|
const removable = $(container).find('.removable');
|
||||||
|
$(removable).remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user