createViewContainerAnchor method

NodeReference createViewContainerAnchor(
  1. CompileElement parent,
  2. int nodeIndex,
  3. TemplateAst ast
)

Creates a node 'anchor' to mark the insertion point for dynamically created elements.

Implementation

NodeReference createViewContainerAnchor(
  CompileElement parent,
  int nodeIndex,
  TemplateAst ast,
) {
  final renderNode = NodeReference.anchor(storage, nodeIndex);
  final parentNode = _getParentRenderNode(parent);
  if (parentNode != o.nullExpr) {
    // Phase 3 (SSR): Use RenderNode factory for SSR compatibility.
    final createAnchor =
        o.importExpr(RenderNodeHelpers.createRenderAnchor).callFn([]);
    _createMethod.addStmt(renderNode.toWriteStmt(createAnchor));
    // Use appendRenderChild helper for SSR compatibility
    _createMethod.addStmt(o.importExpr(RenderNodeHelpers.appendRenderChild)
        .callFn([parentNode, renderNode.toReadExpr()]).toStmt());
  } else {
    final createAnchor =
        o.importExpr(RenderNodeHelpers.createRenderAnchor).callFn([]);
    _createMethod.addStmt(renderNode.toWriteStmt(createAnchor));
  }
  return renderNode;
}