Skip to content

Commit 8777f57

Browse files
authored
fix: better handling of parentNode on detached elements (#86)
1 parent 7a84577 commit 8777f57

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

packages/angular/src/lib/view-util.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,9 @@ export class ViewUtil {
9090
// no previous or next, append to the parent
9191
previous = extendedParent.lastChild; // this can still be undefined if the parent has no children!
9292
}
93-
// Note: handle case with listview nodes
94-
if (extendedChild !== previous && extendedChild !== next) {
95-
this.insertInList(extendedParent, extendedChild, previous, next);
96-
}
93+
this.insertInList(extendedParent, extendedChild, previous, next);
9794

98-
if (isInvisibleNode(child)) {
95+
if (isDetachedElement(child) || isInvisibleNode(child)) {
9996
extendedChild.parentNode = extendedParent;
10097
}
10198

@@ -212,6 +209,7 @@ export class ViewUtil {
212209

213210
const extendedParent = this.ensureNgViewExtensions(parent);
214211
const extendedChild = this.ensureNgViewExtensions(child);
212+
extendedChild.parentNode = null;
215213

216214
this.removeFromList(extendedParent, extendedChild);
217215
if (!isDetachedElement(extendedChild)) {

packages/angular/src/lib/views/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ export function getFirstNativeLikeView(view: View, extractFromNSParent = false)
3131
}
3232

3333
if (extractFromNSParent) {
34-
// const node = view.parentNode;
34+
const node = view.parentNode;
3535
detachViewFromParent(view);
36-
// view.parentNode = node;
36+
view.parentNode = node;
3737
}
3838
return view;
3939
}

0 commit comments

Comments
 (0)