Skip to content

fix(router): set default paramsInheritanceStrategy to 'always' - #68256

Merged
leonsenft merged 1 commit into
angular:mainfrom
atscott:paramsInheritanceAlwaysDefault
Apr 17, 2026
Merged

leonsenft merged 1 commit into
angular:mainfrom
atscott:paramsInheritanceAlwaysDefault

Conversation

@atscott

@atscott atscott commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

Set the default value of paramsInheritanceStrategy to 'always'. This change ensures that route parameters are inherited from parent routes by default, which is the behavior most users expect. It simplifies routing configuration for the majority of use cases.

This change aligns Angular with other popular routing systems where child routes automatically have access to parent parameters:

  • React Router: useParams() includes parent params.
  • Vue Router: $route.params includes parent params.
  • Next.js: params are passed to nested layouts and pages.
  • TanStack Router: useParams() includes parent params with full type safety.

BREAKING CHANGE: paramsInheritanceStrategy now defaults to 'always'

The default value of paramsInheritanceStrategy has been changed from 'emptyOnly' to 'always'. This means that route parameters are inherited from all parent routes by default. To restore the previous behavior, set paramsInheritanceStrategy to 'emptyOnly' in your router configuration.

@angular-robot angular-robot Bot added detected: breaking change PR contains a commit with a breaking change area: router labels Apr 16, 2026
@ngbot ngbot Bot added this to the Backlog milestone Apr 16, 2026
@atscott atscott added the target: major This PR is targeted for the next major release label Apr 16, 2026
@atscott
atscott marked this pull request as draft April 16, 2026 18:24
Set the default value of paramsInheritanceStrategy to 'always'. This change ensures that route parameters are inherited from parent routes by default, which is the behavior most users expect. It simplifies routing configuration for the majority of use cases.

This change aligns Angular with other popular routing systems where child routes automatically have access to parent parameters:
- React Router: useParams() includes parent params.
- Vue Router: $route.params includes parent params.
- Next.js: params are passed to nested layouts and pages.
- TanStack Router: useParams() includes parent params with full type safety.

BREAKING CHANGE: paramsInheritanceStrategy now defaults to 'always'

The default value of paramsInheritanceStrategy has been changed from 'emptyOnly' to 'always'. This means that route parameters are inherited from all parent routes by default. To restore the previous behavior, set paramsInheritanceStrategy to 'emptyOnly' in your router configuration.
@atscott
atscott force-pushed the paramsInheritanceAlwaysDefault branch from 86d7826 to 8d35741 Compare April 16, 2026 18:52
@atscott
atscott marked this pull request as ready for review April 16, 2026 19:15
@atscott
atscott requested a review from JeanMeche April 16, 2026 21:33
@atscott atscott added action: merge The PR is ready for merge by the caretaker merge: caretaker note Alert the caretaker performing the merge to check the PR for an out of normal action needed or note labels Apr 17, 2026
@atscott

atscott commented Apr 17, 2026

Copy link
Copy Markdown
Contributor Author

caretaker: unrelated failures

@leonsenft
leonsenft merged commit 17d10f7 into angular:main Apr 17, 2026
22 of 24 checks passed
@leonsenft

Copy link
Copy Markdown
Contributor

This PR was merged into the repository. The changes were merged into the following branches:

@angular-automatic-lock-bot

Copy link
Copy Markdown

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot Bot locked and limited conversation to collaborators May 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker area: router detected: breaking change PR contains a commit with a breaking change merge: caretaker note Alert the caretaker performing the merge to check the PR for an out of normal action needed or note target: major This PR is targeted for the next major release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants