Revision 9894278e712a50079af87898a63e1d19a462d015 authored by Andrew Kushnir on 17 April 2024, 00:10:08 UTC, committed by Alex Rickabaugh on 22 April 2024, 19:01:36 UTC
`RouterOutlet` uses a unique injector logic that returns a value that correspond to the `ActivatedRoute` token dynamically. This logic breaks when a component/directive/pipe that injects the `ActivatedRoute` is located within a `@defer` block, because defer creates an `EnvironmentInjector` instance, which doesn't have that dynamic logic.

We've added some special handling of the `OutletInjector` in one of the previous commits, but it was incomplete and it was not covering cases when different routes use the same component. This commit updates defer logic to re-establish this dynamic behavior for `ActivatedRoute` by creating an instance of the `OutletInjector` when a parent injector was also an instance of `OutletInjector`.

This fix is a short-term solution and longer term we should find a way to achieve the dynamic behavior that Router relies on, but without adding a special case logic into defer.

Resolves #54864.

PR Close #55374
1 parent aea5f05
History
File Mode Size
.circleci
.devcontainer
.github
.husky
.ng-dev
.vscode
.yarn
adev
aio
devtools
docs
goldens
integration
modules
packages
scripts
third_party
tools
.bazelignore -rw-r--r-- 1.6 KB
.bazelrc -rw-r--r-- 7.2 KB
.bazelversion -rw-r--r-- 6 bytes
.clang-format -rw-r--r-- 73 bytes
.editorconfig -rw-r--r-- 245 bytes
.gitattributes -rw-r--r-- 146 bytes
.gitignore -rw-r--r-- 1004 bytes
.gitmessage -rw-r--r-- 7.2 KB
.mailmap -rw-r--r-- 51 bytes
.npmrc -rw-r--r-- 21 bytes
.nvmrc -rw-r--r-- 8 bytes
.prettierrc -rw-r--r-- 196 bytes
.pullapprove.yml -rw-r--r-- 53.5 KB
.yarnrc -rw-r--r-- 130 bytes
BUILD.bazel -rw-r--r-- 2.5 KB
CHANGELOG.md -rw-r--r-- 311.0 KB
CHANGELOG_ARCHIVE.md -rw-r--r-- 997.0 KB
CODE_OF_CONDUCT.md -rw-r--r-- 3.6 KB
CONTRIBUTING.md -rw-r--r-- 15.5 KB
LICENSE -rw-r--r-- 1.1 KB
README.md -rw-r--r-- 5.5 KB
SECURITY.md -rw-r--r-- 403 bytes
WORKSPACE -rw-r--r-- 9.1 KB
browser-providers.conf.d.ts -rw-r--r-- 387 bytes
browser-providers.conf.js -rw-r--r-- 1.9 KB
gulpfile.js -rw-r--r-- 572 bytes
karma-js.conf.js -rw-r--r-- 6.0 KB
package.json -rw-r--r-- 10.0 KB
packages.bzl -rw-r--r-- 3.1 KB
renovate.json -rw-r--r-- 3.1 KB
tsconfig-tslint.json -rw-r--r-- 200 bytes
tslint.json -rw-r--r-- 5.3 KB
yarn.bzl -rw-r--r-- 77 bytes
yarn.lock -rw-r--r-- 788.1 KB

README.md

back to top