<a name="18.0.0-next.1"></a>
18.0.0-next.1 (2024-03-20)
compiler
| Commit | Description |
| -- | -- |
|
| capture data bindings for content projection purposes in blocks (#54876) |
compiler-cli
| Commit | Description |
| -- | -- |
|
| symbol feature detection for the compiler (#54711) |
core
| Commit | Description |
| -- | -- |
|
| Prevent markForCheck during change detection from causing infinite loops (#54900) |
platform-browser-dynamic
| Commit | Description |
| -- | -- |
|
| unused RESOURCE_CACHE_PROVIDER API has been removed (#54875) |
platform-server
| Commit | Description |
| -- | -- |
|
| remove deprecated platformDynamicServer API (#54874) |
|
| remove deprecated ServerTransferStateModule API (#54874) |
|
| remove deprecated useAbsoluteUrl and baseUrl from PlatformConfig (#54874) |
|
| remove legacy URL handling logic (#54874) |
router
| Commit | Description |
| -- | -- |
|
| Allow Route.redirectTo to be a function which returns a string or UrlTree (#52606) |
|
| Routed components never inherit RouterOutlet EnvironmentInjector (#54265) |
Breaking Changes
platform-browser-dynamic
- No longer used
RESOURCE_CACHE_PROVIDER APIs have been removed.
### platform-server
- deprecated
platformDynamicServer has been removed. Add an import @angular/compiler and replace the usage with platformServer
- deprecated
ServerTransferStateModule has been removed. TransferState can be use without providing this module.
- deprecated
useAbsoluteUrl and baseUrl been removed from PlatformConfig. Provide and absolute url instead.
- Legacy handling or Node.js URL parsing has been removed from
ServerPlatformLocation.
The main differences are;
- pathname is always suffixed with a /.
- port is empty when http: protocol and port in url is 80
- port is empty when https: protocol and port in url is 443
router
- This change allows
Route.redirectTo to be a function
in addition to the previous string. Code which expects redirectTo to
only be a string on Route objects will need to be adjusted.
- Providers available to the routed components always
come from the injector heirarchy of the routes and never inherit from
the
RouterOutlet. This means that providers available only to the
component that defines the RouterOutlet will no longer be available to
route components in any circumstances. This was already the case
whenever routes defined providers, either through lazy loading an
NgModule or through explicit providers on the route config.