mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Currently, Signal Forms eagerly instantiates all nodes in the form tree because `childrenMap` iterates over the `value` and creates a `FieldNode` for every property. This ensures validation side-effects are run early, but creates pure overhead for fields without validation logic unless explicitly accessed. This commit makes `childrenMap` lazy by default, skipping materialization for children without schema logic. This is achieved by introducing `hasLogicRules()` and `anyChildHasLogic()` across the `LogicNode` hierarchy. Fields are now only instantiated when a direct read occurs via `getChild()` (which calls the new `ensureChildrenMap()`) or if their subtree requires eager evaluation due to existing validation rules. Fixes #67212 |
||
|---|---|---|
| .. | ||
| validators | ||
| debounce.spec.ts | ||
| hidden.spec.ts | ||
| metadata.spec.ts | ||
| structure.spec.ts | ||
| when.spec.ts | ||