@angular/core
Advanced tools
Changelog
19.0.0-next.2 (2024-08-28)
Render default fallback with empty projectableNodes
.
When passing an empty array to projectableNodes
in the createComponent
API, the default fallback content of the ng-content
will be rendered if present. To prevent rendering the default content, pass document.createTextNode('')
as a projectableNode
.
For example:
// The first ng-content will render the default fallback content if present
createComponent(MyComponent. { projectableNodes: [[], [secondNode]] });
// To prevent projecting the default fallback content:
createComponent(MyComponent. { projectableNodes: [[document.createTextNode('')], [secondNode]] });
The timers that are used for zone coalescing and hybrid
mode scheduling (which schedules an application state synchronization
when changes happen outside the Angular zone) will now run in the zone
above Angular rather than the root zone. This will mostly affect tests
which use fakeAsync
: these timers will now be visible to fakeAsync
and can be affected by tick
or flush
.
| Commit | Type | Description | | -- | -- | -- | | 50f08e6c4bf | feat | automatically use sizes auto in NgOptimizedImage (#57479) |
| Commit | Type | Description | | -- | -- | -- | | 4716c3b9660 | perf | reduce duplicate component style resolution (#57502) |
| Commit | Type | Description | | -- | -- | -- | | a3cdbfe87f5 | fix | avoid leaking memory if component throws during creation (#57546) | | 7a99815146e | fix | Do not bubble capture events. (#57476) | | 7b1e5be20b9 | fix | fallback to default ng-content with empty projectable nodes. (#57480) | | 0300dd2e18f | fix | Fix fixture.detectChanges with autoDetect disabled and zoneless (#57416) | | 226a67dabba | fix | Schedulers run in zone above Angular rather than root (#57553) |
| Commit | Type | Description |
| -- | -- | -- |
| 0cebfd7462c | fix | switch to ComponentRef.setInput
& remove custom scheduler (#56728) |
| Commit | Type | Description | | -- | -- | -- | | 8f6308457f0 | fix | Do not unnecessarily run matcher twice on route matching (#57530) |
| Commit | Type | Description | | -- | -- | -- | | c9d90786d0a | fix | Address Trusted Types violations in @angular/upgrade (#57454) |
<!-- CHANGELOG SPLIT MARKER --><a name="18.2.2"></a>
Changelog
18.2.2 (2024-08-28)
| Commit | Type | Description | | -- | -- | -- | | 106917af878 | fix | avoid leaking memory if component throws during creation (#57546) | | 6d3a2af146a | fix | Do not bubble capture events. (#57476) |
| Commit | Type | Description | | -- | -- | -- | | 5d2e243c76a | fix | Dynamicaly call the global fetch implementation (#57531) |
| Commit | Type | Description | | -- | -- | -- | | 804925b1149 | fix | Do not unnecessarily run matcher twice on route matching (#57530) |
| Commit | Type | Description | | -- | -- | -- | | 03ec620e31a | fix | Address Trusted Types violations in @angular/upgrade (#57454) |
<!-- CHANGELOG SPLIT MARKER --><a name="18.2.1"></a>
Changelog
18.2.1 (2024-08-22)
| Commit | Type | Description |
| -- | -- | -- |
| 9de30a7b1c | fix | Allow zoneless scheduler to run inside fakeAsync
(#56932) |
| 286012fb89 | fix | handle hydration of components that project content conditionally (#57383) |
| Commit | Type | Description | | -- | -- | -- | | 0bb649b8fa | fix | account for members with doc strings and no modifiers (#57389) | | 3b63082384 | fix | avoid migrating route component in tests (#57317) | | 6b4357fae4 | fix | preserve type when using inject decorator (#57389) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.0.0-next.1"></a>
Changelog
19.0.0-next.1 (2024-08-22)
autoDetect
feature of ComponentFixture
will now
attach the fixture to the ApplicationRef
. As a result, errors during
automatic change detection of the fixture be reported to the ErrorHandler
.
This change may cause custom error handlers to observe new failures that were previously unreported.| Commit | Type | Description | | -- | -- | -- | | 9e87593055 | feat | ensure template style elements are preprocessed as inline styles (#57429) |
| Commit | Type | Description |
| -- | -- | -- |
| b063468027 | feat | support TypeScript 5.6 (#57424) |
| 3b0dca75d6 | fix | Allow zoneless scheduler to run inside fakeAsync
(#56932) |
| f03d274e87 | fix | ComponentFixture autoDetect feature works like production (#55228) |
| d4449fce21 | fix | handle hydration of components that project content conditionally (#57383) |
| Commit | Type | Description | | -- | -- | -- | | 4ae66f25d0 | fix | account for members with doc strings and no modifiers (#57389) | | ac93839d69 | fix | avoid migrating route component in tests (#57317) | | 58a79b6e43 | fix | preserve type when using inject decorator (#57389) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.0.0-next.0"></a>
Changelog
19.0.0-next.0 (2024-08-14)
Errors that are thrown during ApplicationRef.tick
will now be rethrown when using TestBed
. These errors should be
resolved by ensuring the test environment is set up correctly to
complete change detection successfully. There are two alternatives to
catch the errors:
expect(() => TestBed.inject(ApplicationRef).tick()).toThrow()
TestBed
will reject any outstanding ComponentFixture.whenStable
promises. A jasmine test,
for example, could write expectAsync(fixture.whenStable()).toBeRejected()
.As a last resort, you can configure errors to not be rethrown by
setting rethrowApplicationErrors
to false
in TestBed.configureTestingModule
.
Router.errorHandler
property has been removed.
Adding an error handler should be configured in either
withNavigationErrorHandler
with provideRouter
or the errorHandler
property in the extra options of RouterModule.forRoot
. In addition,
the error handler cannot be used to change the return value of the
router navigation promise or prevent it from rejecting. Instead, if you
want to prevent the promise from rejecting, use resolveNavigationPromiseOnError
.Resolve
interface now includes
RedirectCommand
.| Commit | Type | Description | | -- | -- | -- | | 468d3fb9b1 | fix | rethrow errors during ApplicationRef.tick in TestBed (#57200) |
| Commit | Type | Description |
| -- | -- | -- |
| f271021e19 | feat | Add routerOutletData
input to RouterOutlet
directive (#57051) |
| b2790813a6 | fix | Align RouterModule.forRoot errorHandler with provider error handler (#57050) |
| 7436d3180e | fix | Update Resolve interface to include RedirectCommand like ResolveFn (#57309) |
<a name="18.2.0"></a>
Changelog
18.2.0-next.4 (2024-08-05)
| Commit | Type | Description | | -- | -- | -- | | e2259c7b09 | fix | support JIT transforms before other transforms modifying classes (#57262) |
| Commit | Type | Description | | -- | -- | -- | | 827070e331 | fix | Do not run image performance warning checks on server (#57234) |
| Commit | Type | Description | | -- | -- | -- | | 4bb9d0f923 | fix | avoid generating TS suggestion diagnostics for templates (#56241) |
| Commit | Type | Description | | -- | -- | -- | | 6c76c91e15 | feat | Add defaultQueryParamsHandling to router configuration (#57198) |
<!-- CHANGELOG SPLIT MARKER --><a name="18.2.0-next.3"></a>
Changelog
18.1.5 (2024-08-14)
| Commit | Type | Description | | -- | -- | -- | | 5401332b0e | fix | generate valid TS 5.6 type checking code (#57303) |
| Commit | Type | Description | | -- | -- | -- | | e39b22a932 | fix | Account for addEventListener to be passed a Window or Document. (#57282) | | db65bc25ca | fix | Account for addEventListener to be passed a Window or Document. (#57354) | | 0e024ecc27 | fix | complete post-hydration cleanup in components that use ViewContainerRef (#57300) | | 822db64b93 | fix | skip hydration for i18n nodes that were not projected (#57356) | | 810f76f574 | fix | take skip hydration flag into account while hydrating i18n blocks (#57299) |
<!-- CHANGELOG SPLIT MARKER --><a name="18.1.4"></a>