Skip to content

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

Open
atscott wants to merge 1 commit intoangular:mainfrom
atscott:paramsInheritanceAlwaysDefault
Open

fix(router): set default paramsInheritanceStrategy to 'always'#68256
atscott wants to merge 1 commit intoangular:mainfrom
atscott:paramsInheritanceAlwaysDefault

Conversation

@atscott
Copy link
Copy Markdown
Contributor

@atscott atscott commented Apr 16, 2026

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: router detected: breaking change PR contains a commit with a breaking change target: major This PR is targeted for the next major release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant