<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.