Merge pull request #746 from gregdking/next
#745 Remove references to DOM nodes when unmounting (Follow-up to #727)
This commit is contained in:
commit
fe65aa748c
1 changed files with 16 additions and 4 deletions
20
mithril.js
20
mithril.js
|
|
@ -782,6 +782,8 @@ var m = (function app(window, undefined) {
|
|||
controllers[index].onunload(event);
|
||||
}
|
||||
|
||||
var isNullComponent = component === null;
|
||||
|
||||
if (!isPrevented) {
|
||||
m.redraw.strategy("all");
|
||||
m.startComputation();
|
||||
|
|
@ -795,14 +797,24 @@ var m = (function app(window, undefined) {
|
|||
components[index] = component;
|
||||
}
|
||||
endFirstComputation();
|
||||
if (isNullComponent) {
|
||||
removeRootElement(root, index);
|
||||
}
|
||||
return controllers[index];
|
||||
}
|
||||
if (!component) {
|
||||
roots.splice(index, 1);
|
||||
controllers.splice(index, 1);
|
||||
components.splice(index, 1);
|
||||
if (isNullComponent) {
|
||||
removeRootElement(root, index);
|
||||
}
|
||||
};
|
||||
|
||||
function removeRootElement(root, index) {
|
||||
roots.splice(index, 1);
|
||||
controllers.splice(index, 1);
|
||||
components.splice(index, 1);
|
||||
reset(root);
|
||||
nodeCache.splice(getCellCacheKey(root), 1);
|
||||
}
|
||||
|
||||
var redrawing = false, forcing = false;
|
||||
m.redraw = function(force) {
|
||||
if (redrawing) return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue