KnockoutJS drop unused templateNodes

This commit is contained in:
the-djmaze 2024-03-03 17:56:43 +01:00
parent ab1a75935f
commit bb3fc79e09

View file

@ -18,8 +18,7 @@
currentViewModel = null;
// Any in-flight loading operation is no longer relevant, so make sure we ignore its completion
currentLoadingOperationId = null;
},
originalChildNodes = [...ko.virtualElements.childNodes(element)];
};
ko.virtualElements.emptyNode(element);
ko.utils.domNodeDisposal['addDisposeCallback'](element, disposeAssociatedComponentViewModel);
@ -58,15 +57,9 @@
ko.virtualElements.setDomNodeChildren(element, ko.utils.cloneNodes(template));
currentViewModel = componentDefinition['createViewModel'](componentParams, {
'element': element,
'templateNodes': originalChildNodes
'element': element
});
ko.applyBindingsToDescendants(asyncContext.createChildContext(currentViewModel, {
'extend': ctx => {
ctx['$component'] = currentViewModel;
ctx['$componentTemplateNodes'] = originalChildNodes;
}
}), element);
ko.applyBindingsToDescendants(asyncContext.createChildContext(currentViewModel, {}), element);
}
});
}, { disposeWhenNodeIsRemoved: element });