@angular/router
Advanced tools
Changelog
18.0.0-next.2 (2024-03-28)
ComponentFixture.whenStable
now matches the
ApplicationRef.isStable
observable. Prior to this change, stability
of the fixture did not include everything that was considered in
ApplicationRef
. whenStable
of the fixture will now include unfinished
router navigations and unfinished HttpClient
requests. This will cause
tests that await
the whenStable
promise to time out when there are
incomplete requests. To fix this, remove the whenStable
,
instead wait for another condition, or ensure HttpTestingController
mocks responses for all requests. Try adding HttpTestingController.verify()
before your await fixture.whenStable
to identify the open requests.
Also, make sure your tests wait for the stability promise. We found many
examples of tests that did not, meaning the expectations did not execute
within the test body.
In addition, ComponentFixture.isStable
would synchronously switch to
true in some scenarios but will now always be asynchronous.
UrlTree
as a redirect, the
redirecting navigation will now use replaceUrl
if the initial
navigation was also using the replaceUrl
option. If this is not
desirable, the redirect can configure new NavigationBehaviorOptions
by
returning a RedirectCommand
with the desired options instead of UrlTree
.| Commit | Type | Description | | -- | -- | -- | | 7fc7f3f05f | fix | capture all control flow branches for content projection in if blocks (#54921) | | a369f43fbd | fix | capture switch block cases for content projection (#54921) | | eb625d3783 | fix | declare for loop aliases in addition to new name (#54942) | | bfd0bd574e | fix | invoke method-based tracking function with context (#54960) | | e1650e3b13 | fix | throw error if item name and context variables conflict (#55045) |
| Commit | Type | Description | | -- | -- | -- | | 5bd188a394 | feat | add partial compilation support for deferred blocks (#54908) | | b02b31a915 | feat | drop support for TypeScript older than 5.4 (#54961) | | 78188e877a | fix | add diagnostic if initializer API is used outside of an initializer (#54993) | | 694ba79cbf | fix | report cases where initializer APIs are used in a non-directive class (#54993) | | 6219341d26 | fix | report errors when initializer APIs are used on private fields (#54981) |
| Commit | Type | Description |
| -- | -- | -- |
| a600a39d0c | feat | add support for fallback content in ng-content (#54854) |
| 658cf8c384 | fix | ComponentFixture
stability should match ApplicationRef
(#54949) |
| 2fc11eae9e | fix | account for re-projected ng-content elements with fallback content (#54854) |
| 1c0ec56c46 | fix | correctly project single-root content inside control flow (#54921) |
| 86a359b399 | fix | establish proper injector resolution order for @defer
blocks (#55079) |
| e02bcf89cf | fix | Fix clearing of pending task in zoneless cleanup implementation (#55074) |
| Commit | Type | Description | | -- | -- | -- | | cf73983fdc | fix | include transferCache when cloning HttpRequest (#54939) | | 13554f9637 | fix | manage different body types for caching POST requests (#54980) |
| Commit | Type | Description | | -- | -- | -- | | 6d1b82df32 | fix | allow external projects to use provided compiler options (#55035) | | 4166dfc1b6 | fix | prevent underlying TS Service from handling template files (#55003) |
| Commit | Type | Description | | -- | -- | -- | | 63688714ae | fix | account for variables in imports initializer (#55081) |
| Commit | Type | Description | | -- | -- | -- | | 60f1d681e0 | fix | preserve replaceUrl when returning a urlTree from CanActivate (#54042) | | eae75ff3f9 | fix | RouterLinkActive will always remove active classes when links are not active (#54982) |
<!-- CHANGELOG SPLIT MARKER --><a name="17.3.2"></a>
Changelog
17.3.2 (2024-03-28)
| Commit | Type | Description | | -- | -- | -- | | 2b7bad5151 | fix | invoke method-based tracking function with context (#54960) |
| Commit | Type | Description | | -- | -- | -- | | b478dfbfda | fix | report errors when initializer APIs are used on private fields (#55070) |
| Commit | Type | Description |
| -- | -- | -- |
| 708ba8115f | fix | establish proper injector resolution order for @defer
blocks (#55079) |
| Commit | Type | Description | | -- | -- | -- | | cb433af0e1 | fix | include transferCache when cloning HttpRequest (#54939) | | 64f202cab9 | fix | manage different body types for caching POST requests (#54980) |
| Commit | Type | Description | | -- | -- | -- | | 2f9d94bc4a | fix | account for variables in imports initializer (#55081) |
| Commit | Type | Description | | -- | -- | -- | | 365fd50407 | fix | RouterLinkActive will always remove active classes when links are not active (#54982) |
<!-- CHANGELOG SPLIT MARKER --><a name="18.0.0-next.1"></a>
Changelog
17.3.1 (2024-03-20)
| Commit | Type | Description | | -- | -- | -- | | c0788200e2 | fix | capture data bindings for content projection purposes in blocks (#54876) |
| Commit | Type | Description | | -- | -- | -- | | 99e9474aa2 | fix | symbol feature detection for the compiler (#54711) |
<!-- CHANGELOG SPLIT MARKER --><a name="18.0.0-next.0"></a>
Changelog
17.3.0 (2024-03-13)
| Commit | Type | Description | | -- | -- | -- | | 1a6beae8a2 | feat | Enable template pipeline by default. (#54571) | | f386a04c9d | fix | handle two-way bindings to signal-based template variables in instruction generation (#54714) | | 1f129f114e | fix | not catching for loop empty tracking expressions (#54772) |
| Commit | Type | Description |
| -- | -- | -- |
| 12dc4d074e | fix | account for as expression in docs extraction (#54414) |
| da7fbb40f0 | fix | detect when the linker is working in unpublished angular and widen supported versions (#54439) |
| 492e03f699 | fix | flag two-way bindings to non-signal values in templates (#54714) |
| 5afa4f0ec1 | fix | support ModuleWithProviders
literal detection with typeof
(#54650) |
| Commit | Type | Description |
| -- | -- | -- |
| 331b16efd2 | feat | add API to inject attributes on the host node (#54604) |
| fb540e169a | feat | add migration for invalid two-way bindings (#54630) |
| c687b8f453 | feat | expose new output()
API (#54650) |
| c809069f21 | feat | introduce outputFromObservable()
interop function (#54650) |
| aff65fd1f4 | feat | introduce outputToObservable
interop helper (#54650) |
| 974958913c | feat | support TypeScript 5.4 (#54414) |
| 39a50f9a8d | fix | ensure all initializer functions run in an injection context (#54761) |
| 243ccce624 | fix | exclude class attribute intended for projection matching from directive matching (#54800) |
| 2909e9817d | fix | prevent infinite loops in clobbered elements check (#54425) |
| 7243c704cf | fix | return a readonly signal on asReadonly
. (#54706) |
| bb35414a38 | perf | speed up retrieval of DestroyRef
in EventEmitter
(#54748) |
| Commit | Type | Description | | -- | -- | -- | | 8d37ed035c | fix | exclude caching for authenticated HTTP requests (#54746) |
| Commit | Type | Description | | -- | -- | -- | | c1c7384e02 | feat | Add reusable types for router guards (#54580) | | 7225485311 | fix | Navigations triggered by cancellation events should cancel previous navigation (#54710) |
<!-- CHANGELOG SPLIT MARKER --><a name="17.2.4"></a>
Changelog
17.2.4 (2024-03-06)
| Commit | Type | Description | | -- | -- | -- | | 917b9bdd2e | fix | unwrap expressions with type parameters in query read property (#54647) |
| Commit | Type | Description |
| -- | -- | -- |
| 586cc24a10 | fix | apply TestBed provider overrides to @defer
dependencies (#54667) |
| b558a01c84 | fix | generic inference for signal inputs may break with --strictFunctionTypes
(#54652) |
| 443e5f1591 | fix | return a readonly signal on asReadonly
. (#54719) |
| ffbafc7d4a | fix | untrack various core operations (#54614) |
<a name="17.2.3"></a>
Changelog
17.2.3 (2024-02-27)
| Commit | Type | Description |
| -- | -- | -- |
| 1a526f2881 | perf | AsyncPipe
should not call markForCheck
on subscription (#54554) |
| Commit | Type | Description | | -- | -- | -- | | 2aefed8763 | fix | catch function instance properties in interpolated signal diagnostic (#54325) | | 48aec63ee4 | fix | identify aliased initializer functions (#54480) | | daf7c611b2 | fix | identify aliased initializer functions (#54609) |
| Commit | Type | Description |
| -- | -- | -- |
| 57123524a2 | fix | collect providers from NgModules while rendering @defer
block (#52881) |
| 79a32816dc | fix | fix typo in injectors.svg file (#54596) |
| Commit | Type | Description | | -- | -- | -- | | dbe673b027 | fix | resolve infinite loop for a single line element with a long tag name and angle bracket on a new line (#54588) |
<!-- CHANGELOG SPLIT MARKER --><a name="17.2.2"></a>