note: die Zusammenfassung und die Release Notes sind auf Englisch
note: keine Zusammenfassung für dieses ältere Release
Wir fassen die neueren Releases zusammen. Die originalen Release Notes dieser Version stehen hier unten.
release-notesgithub.com/angular/angular · 218 Zeilen
- ### common
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/c795960ada1a7e21b8bee411e20a08c700b6e385) | Add experimental support for the Navigation API (#63406) |
- | [](https://github.com/angular/angular/commit/9eac43cf46993442e9de5764e2ccca98e3837939) | Support of optional keys for the KeyValue pipe (#48814) |
- | [](https://github.com/angular/angular/commit/a1868c9d13991d24f893499406b29a5f2e0a388b) | update to cldr 47 (#64032) |
- | [](https://github.com/angular/angular/commit/196fa500a3c282af5158fa2873df8e2a73243493) | properly type ngComponentOutlet (#64561) |
- | [](https://github.com/angular/angular/commit/7a4b225c57d8e390ec06731f5211d52d14da3a9c) | improve typing of `ngComponentOutletContent` (#63674) |
- | [](https://github.com/angular/angular/commit/25f593ce2a623add0cbd4ab3bb0d4987793e4f34) | remove`ngModuleFactory` input of `NgComponentOutlet` (#62838) |
- ### compiler
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/ecea909bccc3d6a3c33e77e1feb4ad0926e72f9e) | don't choke on unbalanced parens in declaration block |
- | [](https://github.com/angular/angular/commit/04dd75ba948889601bf611254021577aba458d4c) | support arbitrary nesting in :host-context() |
- | [](https://github.com/angular/angular/commit/f54cc4f28abb9ded190ae33619e5ca7073df08a6) | support commas in :host() argument |
- | [](https://github.com/angular/angular/commit/814b2713f56f94372db7e15e0a86f089a88f888d) | support complex selectors in :nth-child() |
- | [](https://github.com/angular/angular/commit/aad6ced0ef5e535d1a6eae7c79df4e03ea73b7f2) | support one additional level of nesting in :host() |
- ### compiler-cli
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/563dbd998c86e850b3c4dde4c7cee00d7c9d7581) | Adds diagnostic for misconfigured `@defer` triggers (#64069) |
- | [](https://github.com/angular/angular/commit/0571b335b9b11459b73a19679671eae97fbe1683) | enable type checking of host bindings by default (#63654) |
- | [](https://github.com/angular/angular/commit/5b55200edfd12fa7dcdb6570885e0c52a9cc5ec0) | allow value to be set on radio fields |
- | [](https://github.com/angular/angular/commit/ab98b2425f4c4cb59927aa686818ecee99e634c7) | capture metadata for undecorated fields (#63957) |
- | [](https://github.com/angular/angular/commit/be7110342b61d837822524d4f60f56a7f859f594) | disallow compiling with the `emitDeclarationOnly` TS compiler option enabled (#61609) |
- | [](https://github.com/angular/angular/commit/bd322ca4100c8e51df7c71377161c2c9412d1b83) | do not flag custom control required inputs as missing when field is present |
- | [](https://github.com/angular/angular/commit/471da8a311fa7f77815bdf0199943cfa50d45181) | infer type of custom field controls |
- | [](https://github.com/angular/angular/commit/96cb0cffda55516e01613958d1268872f1070722) | infer types of signal forms set on native inputs |
- | [](https://github.com/angular/angular/commit/71ab11ccf0f0daaffb49779d5f90b9e2da76dbd5) | make field detection logic more robust |
- | [](https://github.com/angular/angular/commit/1f389b8b97600ee382ff842e066abc2ca31c442f) | missingStructuralDirective diagnostic produces false negatives (#64579) |
- | [](https://github.com/angular/angular/commit/7fd3db04232d63f1b48ec389bbb62d9ca277fcf9) | remove internal syntax-related flags (#63787) |
- | [](https://github.com/angular/angular/commit/c371251e4c2e7bc1ab6da7c51b05e047bdfe6068) | report invalid bindings on form controls |
- | [](https://github.com/angular/angular/commit/01290ab275599ee6887f9c2139a16f833eaa7071) | use any when checking field interface conformance |
- ### core
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/809a4ed8c110ca930cb1c6bad309f8bfcaf7ceb8) | Add migration for zoneless by default. (#63042) |
- | [](https://github.com/angular/angular/commit/2a7a5de53fd6fb5714c06c63dd1dad5718086083) | Allow passing application providers in `bootstrapModule` options (#64354) |
- | [](https://github.com/angular/angular/commit/28926ba92cf3da7e45a7b8938bba49febdf58eb7) | introduce `BootstrapContext` for improved server bootstrapping (#63562) |
- | [](https://github.com/angular/angular/commit/c2d376b85aa6eea2c4d7ec3207df6767f5739945) | make SimpleChanges generic (#64535) |
- | [](https://github.com/angular/angular/commit/ad2376435b4bcfdb695d841272f8234ab2a7cca5) | support IntersectionObserver options in viewport triggers (#64130) |
- | [](https://github.com/angular/angular/commit/539717f58a9bff1f8aacc857657b7df573d0bb70) | support regular expressions in templates (#63887) |
- | [](https://github.com/angular/angular/commit/ab415f3d7f23cef8e00595e9cf6af2c8b764a8ae) | control not recognized when input has directive injecting ViewContainerRef (#64368) |
- | [](https://github.com/angular/angular/commit/f008045dedc773f70dd6f1ced73e689fb4436d6d) | do not rename ARIA property bindings to attributes (#63925) |
- | [](https://github.com/angular/angular/commit/1352fbdbf2542c39715045c7a6c0f6aa41516b02) | Drop special-case disables automatic change detection scheduling (#63846) |
- | [](https://github.com/angular/angular/commit/c0791e1887590b862bfed9333c5c90be3ac487d0) | drop support for TypeScript 5.8 (#63589) |
- | [](https://github.com/angular/angular/commit/aa389a691bc2e5726a0ded73d30962c29faab680) | ensure `@for` iteration over field is reactive (#64113) |
- | [](https://github.com/angular/angular/commit/fec7c288e96dd32f5861124384dbef4d5350d437) | Error on invalid APP_ID (#63252) |
- | [](https://github.com/angular/angular/commit/d399d7d02b66c485cc5479dabd349d017a002692) | Explicit Zone CD in TestBed providers should not override TestBed error handler (#63404) |
- | [](https://github.com/angular/angular/commit/92e09adc0a191ec599915e20b0835bf455bc572b) | Remove ignoreChangesOutsideZone option (#62700) |
- | [](https://github.com/angular/angular/commit/45fed3d2011bf6feffa8ee1365a5c88d603f826c) | Remove Zone-based change provider from internals by default (#63382) |
- | [](https://github.com/angular/angular/commit/c9f977833ebed6f89afd38f65c03e9b3808f2b07) | skip Angular formatting when formatting signals recursively |
- | [](https://github.com/angular/angular/commit/67fbd5ff1eef80d98e5e9c633a15bb1ae27134bb) | SSR error in signal forms |
- | [](https://github.com/angular/angular/commit/c241038111cf602669dd68ef516f147889ab02e5) | update symbols (#64481) |
- | [](https://github.com/angular/angular/commit/a5e5dbbc16f605cce6dd72a82ddb9110e655a89b) | remove `moduleId` from Component metadata (#63482) |
- | [](https://github.com/angular/angular/commit/9a16718b13a03df2941c31cb968dcbfa6904a481) | remove deprecated `interpolation` option on Components. (#63474) |
- ### elements
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/be0455adda7d92f741105b3599e7922f099cc024) | return value on signal input getter (#62113) |
- ### forms
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/a278ee358c4d111cf29eb8d3d8eb1fe1799c8495) | add `debounce()` rule for signal forms |
- | [](https://github.com/angular/angular/commit/b8314bd3409500b8540d1ce00a330fdb2f0fc83a) | add experimental signal-based forms (#63408) |
- | [](https://github.com/angular/angular/commit/0dd95c503f4b07b478e505b99aaa63419a340095) | Add FormArrayDirective (#55880) |
- | [](https://github.com/angular/angular/commit/d201cd2c2bdb418fd1b595320855c35eb91e1e5b) | Prevents marking fields as touched/dirty when state is hidden/readonly/disabled (#63633) |
- | [](https://github.com/angular/angular/commit/9c5e969f51448aad05a7e0ac83143b4b5ae477b4) | bind invalid input in custom controls (#64526) |
- | [](https://github.com/angular/angular/commit/10ef96adb3d989781c7ec5116a70b6518866ee27) | consistent treatment of empty (#63456) |
- | [](https://github.com/angular/angular/commit/d89e522a1f07c4b2ac7fd2b926ae44658f9394d4) | debounce updates from interop controls |
- | [](https://github.com/angular/angular/commit/c0d88c37c983991236177a0337f5cab75054abf7) | Emit `FormResetEvent` when resetting control (#64024) |
- | [](https://github.com/angular/angular/commit/94b0afec0007f0f5142a39def2849a1ba9e5030d) | implement interoperability between signal forms and reactive forms (#64471) |
- | [](https://github.com/angular/angular/commit/a1ac9a64154c0a9206e11343b195f287dba3425d) | interop supports CVAs with signals (#64618) |
- | [](https://github.com/angular/angular/commit/505bde1fede95ec907c6b028db4b3c9237899f30) | mark field as dirty when value is changed by `ControlValueAccessor` (#64471) |
- | [](https://github.com/angular/angular/commit/3529877772f7a777d467c99e3d95b465b1b1d82c) | mark field as dirty when value is changed by a bound control (#64483) |
- | [](https://github.com/angular/angular/commit/fd9af2afaf6c239bbbba50f2f016ecf9b83133c4) | only propagate schema defined properties from field to control (#64446) |
- | [](https://github.com/angular/angular/commit/91d8d55a80a1d1894827ef06e38e56de6e661575) | Set error message of a schema error. |
- | [](https://github.com/angular/angular/commit/f4d1017c25813b290697d8e1a829983a7b1bca27) | test that common field states are propagated to controls (#63884) |
- | [](https://github.com/angular/angular/commit/acd7c83597ad376ec9a48421b3b291951ca2d75e) | test that min/max properties are propagated to controls (#63884) |
- | [](https://github.com/angular/angular/commit/71e8672837eb6c2da2570eb2341e896fbf7ca5a3) | test that minLength/maxLength properties are propagated to controls (#63884) |
- | [](https://github.com/angular/angular/commit/507b3466eec648a706f10d2805e67e53522e9654) | implement change detection for field control bindings |
- | [](https://github.com/angular/angular/commit/781a3299f9e16e16902f12f7e7c80c10f15f788a) | only update interop controls when bound field changes |
- | [](https://github.com/angular/angular/commit/32f86d35f7cd177b6e4525a7ae97909888d9fee4) | optimize `[field]` binding instructions (#64351) |
- ### http
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/2739b7975ba40a8cfc3b00f0c444a3a147f7f553) | add referrerPolicy option to HttpResource (#64283) |
- | [](https://github.com/angular/angular/commit/07e678872f91236f5c258f98a7aea536b5a200ac) | Add reponseType property to HttpResponse and HttpErrorResponse (#63043) |
- | [](https://github.com/angular/angular/commit/5cbdefcf118e9c228bc887be30114afc84a4db2a) | add support for fetch referrerPolicy option in HttpClient (#64116) |
- | [](https://github.com/angular/angular/commit/4bed062bc9f2a0a66c9af3cb8aeb42ee023c6393) | Provide http services in root (#56212) |
- | [](https://github.com/angular/angular/commit/0e4e17cd97d7a5f7ccc40405ba2103a78e1e1298) | `HttpResponseBase.statusText` (#64176) |
- ### language-server
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/3f7111a9c38c6fd00af705a3045f2909f47b505b) | fix directory renaming on Windows |
- ### language-service
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/89095946cff051c5613b8f54ec722d08cd47c709) | address potential memory leak during project creation |
- | [](https://github.com/angular/angular/commit/80e00ff4e5833c35e19cfca271dff51121108333) | prevent interpolation from superseding block braces (#64392) |
- ### migrations
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/6ddb2503913fa8698a0e07e88ce49598cc7af481) | add migration to convert ngClass to use class (#62983) |
- | [](https://github.com/angular/angular/commit/8dc8914c8a2be44e30b512670628a558bdd7f1f4) | add migration to convert ngStyle to use style (#63517) |
- | [](https://github.com/angular/angular/commit/861cee34e0e9b5562cfe70d245f30b7ddea7d8fd) | Adds migration for deprecated router testing module (#64217) |
- | [](https://github.com/angular/angular/commit/75fc16b261de5312c60834330680052f07138480) | Adds support for CommonModule to standalone migration (#64138) |
- | [](https://github.com/angular/angular/commit/655a99d0c60f70bbc14968133cfe6ab251cedc92) | fix bug in ngclass-to-class migration (#63617) |
- | [](https://github.com/angular/angular/commit/62bbce63b7abcb22f1fd453c59e0063aae3b189c) | remove error for no matching files in control flow migration (#64253) |
- ### platform-browser
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/ce8db665f984005264de0eb8b452370972823c17) | remove deprecated `ApplicationConfig` export (#63529) |
- ### router
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/4e0fc81491bfe6e4eac5c59ef0bde908a3d58413) | convert `lastSuccessfulNavigation` to signal (#63057) |
- | [](https://github.com/angular/angular/commit/5e61e8d3c3a80b21116e3188805de556e4f0c496) | Fix memory leak through Navigation.abort and canDeactivate guards (#64141) |
- | [](https://github.com/angular/angular/commit/f6a73f19131b2befa74f4ea3f941038603958ac0) | Respect custom `UrlSerializer` handling of query parameters (#64449) |
- | [](https://github.com/angular/angular/commit/5b53535dd16af7d3ea7b0216984560fd2223d76c) | Update recognize stage to use internally async/await (#62994) |
- ### upgrade
- | Commit | Description |
- | -- | -- |
- | [](https://github.com/angular/angular/commit/f86846555bba44b2fb71d012fe4eebf82a0f5d00) | Remove deprecated UpgradeAdapter (#61659) |
- ## Breaking Changes
- ### common
- - (test only) - `TestBed` now provides a fake `PlatformLocation`
- implementation that supports the Navigation API. This may break some
- tests, though we have not observed any failures internally. You can revert to the
- old default for `TestBed` by providing the `MockPlatformLocation` from
- `@angular/common/testing` in your providers:
- `{provide: PlatformLocation, useClass: MockPlatformLocation}`
- - `ngComponentOutletContent` is now of type `Node[][] | undefined` instead of `any[][] | undefined`.
- - NgModuleFactory has been removed, use NgModule instead.
- ### compiler-cli
- - * Previously hidden type issues in host bindings may show up in your builds. Either resolve the type issues or set `"typeCheckHostBindings": false` in the `angularCompilerOptions` section of your tsconfig.
- - The Angular compiler now produces an error when the
- the `emitDeclarationOnly` TS compiler option is enabled as this mode is
- not supported.
- ### core
- - The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.
- Before:
- ```ts
- const bootstrap = () => bootstrapApplication(AppComponent, config);
- ```
- After:
- ```ts
- const bootstrap = (context: BootstrapContext) =>
- bootstrapApplication(AppComponent, config, context);
- ```
- A schematic is provided to automatically update `main.server.ts` files to pass the `BootstrapContext` to the `bootstrapApplication` call.
- In addition, `getPlatform()` and `destroyPlatform()` will now return `null` and be a no-op respectively when running in a server environment.
- - 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.
- - * TypeScript versions less than 5.9 are no longer supported.
- - (test only) - Using `provideZoneChangeDetection` in the
- TestBed providers would previously prevent `TestBed` from rethrowing
- errors as it should. Errors in the test will now be rethrown, regardless
- of the usage of `provideZoneChangeDetection`. Tests should be adjusted to
- prevent or account for these errors. As in previous major versions,
- this behavior can be disabled with `rethrowApplicationErrors: false` in
- `configureTestingModule` as a last resort.
- - `ignoreChangesOutsideZone` is no longer available as an
- option for configuring ZoneJS change detection behavior.
- - 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.
- ### elements
- - Fix signal input getter behavior in custom elements.
- Before this change, signal inputs in custom elements required function calls to access their values (`elementRef.newInput()`), while decorator inputs were accessed directly (`elementRef.oldInput`). This inconsistency caused confusion and typing difficulties.
- The getter behavior has been standardized so signal inputs can now be accessed directly, matching the behavior of decorator inputs:
- Before:
- - Decorator Input: `elementRef.oldInput`
- - Signal Input: `elementRef.newInput()`
- After:
- - Decorator Input: `elementRef.oldInput`
- - Signal Input: `elementRef.newInput`
- ### forms
- - This new directive will conflict with existing FormArray directives or formArray inputs on the same element.
- ### platform-browser
- - The deprecated `ApplicationConfig` export from `@angular/platform-browser` has been removed.
- Please import `ApplicationConfig` from `@angular/core` instead.
- ### router
- - `lastSuccessfulNavigation` is now a signal and needs to be invoked
- - Router navigations may take several additional
- microtasks to complete. Tests have been found to often be highly
- dependent on the exact timing of navigation completions with respect to
- the microtask queue. The most common fix for tests is to ensure all
- navigations have been completed before making assertions. On rare
- occasions, this can also affect production applications. This can be
- caused by multiple subscriptions to router state throughout the application,
- both of which trigger navigations that happened to not conflict with the
- previous timing.
- ### upgrade
- - `UpgradeAdapter` is no longer available. Use
- `upgrade/static` instead
- ### zone.js
- - IE/Non-Chromium Edge are not supported anymore.
- ## Deprecations
- ### http
- - `HttpResponseBase.statusText` is deprecated