( tView: TView, lView: LView, childRNode: RNode | RNode[], childTNode: TNode, )
| 638 | * @param childTNode The TNode of the child element |
| 639 | */ |
| 640 | export function appendChild( |
| 641 | tView: TView, |
| 642 | lView: LView, |
| 643 | childRNode: RNode | RNode[], |
| 644 | childTNode: TNode, |
| 645 | ): void { |
| 646 | const parentRNode = getParentRElement(tView, childTNode, lView); |
| 647 | const renderer = lView[RENDERER]; |
| 648 | const parentTNode: TNode = childTNode.parent || lView[T_HOST]!; |
| 649 | const anchorNode = getInsertInFrontOfRNode(parentTNode, childTNode, lView); |
| 650 | if (parentRNode != null) { |
| 651 | if (Array.isArray(childRNode)) { |
| 652 | for (let i = 0; i < childRNode.length; i++) { |
| 653 | nativeAppendOrInsertBefore(renderer, parentRNode, childRNode[i], anchorNode, false); |
| 654 | } |
| 655 | } else { |
| 656 | nativeAppendOrInsertBefore(renderer, parentRNode, childRNode, anchorNode, false); |
| 657 | } |
| 658 | } |
| 659 | |
| 660 | _processI18nInsertBefore !== undefined && |
| 661 | _processI18nInsertBefore(renderer, childTNode, lView, childRNode, parentRNode); |
| 662 | } |
| 663 | |
| 664 | /** |
| 665 | * Returns the first native node for a given LView, starting from the provided TNode. |
no test coverage detected
searching dependent graphs…