Angular: 21.0.0-next.4 Release

Release date:
September 18, 2025
Previous version:
21.0.0-next.3 (released September 10, 2025)
Magnitude:
2,845 Diff Delta
Contributors:
9 total committers
Data confidence:
Commits:

Top Contributors in 21.0.0-next.4

hawkgs
AndrewKushnir
SkyZeroZx
alan-agius4
thesmiler
arturovt
damiansire
hybrist
bencodezen

Directory Browser for 21.0.0-next.4

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

common

| Commit | Description | | -- | -- | | refactor - 7a4b225c57 | improve typing of ngComponentOutletContent (#63674) |

compiler

| Commit | Description | | -- | -- | | fix - 803dc8e44c | Add support for aria-invalid (#63748) |

compiler-cli

| Commit | Description | | -- | -- | | fix - 89cf62f907 | only bind inputs that are part of microsyntax to a structural directive (#52453) | | fix - 7fd3db0423 | remove internal syntax-related flags (#63787) | | fix - 0a60e355e1 | signal not invoked diagnostic not raised when input has same name in template (#63754) |

core

| Commit | Description | | -- | -- | | feat - 809a4ed8c1 | Add migration for zoneless by default. (#63042) | | feat - 328a2bf719 | support regular expressions in templates (#63857) | | fix - 1352fbdbf2 | Drop special-case disables automatic change detection scheduling (#63846) | | fix - 3d6eeab2e0 | prevent animation events from being cleaned up on destroy (#63414) | | fix - a4001c440f | Prevent leave animations on a move operation (#63745) | | fix - 45fed3d201 | Remove Zone-based change provider from internals by default (#63382) | | refactor - a5e5dbbc16 | remove moduleId from Component metadata (#63482) | | refactor - 9a16718b13 | remove deprecated interpolation option on Components. (#63474) |

forms

| Commit | Description | | -- | -- | | feat - d201cd2c2b | Prevents marking fields as touched/dirty when state is hidden/readonly/disabled (#63633) |

migrations

| Commit | Description | | -- | -- | | feat - 8dc8914c8a | add migration to convert ngStyle to use style (#63517) | | fix - 4133b08d93 | fix route-lazy-loading migration (#63818) |

Breaking Changes

common

  • ngComponentOutletContent is now of type Node[][] | undefined instead of any[][] | undefined. ### core
  • Using a combination of provideZoneChangeDetection while also removing ZoneJS polyfills will no longer result in the internal scheduler being disabled. All Angular applications now consistenly use the same scheduler, and those with the Zone change detection provider include additional automatic scheduling behaviors based on NgZone stabilization.
  • Angular no longer provides a change detection scheduler for ZoneJS-based change detection by default. Add provideZoneChangeDetection to the providers of your bootstrapApplication function or your AppModule (if using bootstrapModule). This provider addition will be covered by an automated migration.
  • moduleId was removed from Component metadata.
  • The interpolation option on Components has been removed. Only the default {{ ... }} is now supported.