angular/packages/core
Andrew Kushnir 822439fddd fix(core): ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966)
Before Ivy, it was only possible to call the `ViewContainerRef.createComponent` function with the ComponentFactory as the first argument. An instance of a `ComponentFactory` resolved via `ComponentFactoryResolver` contained a reference to an `NgModule` where the component is declared. As a result, the component maintained a DI connection with the module injector tree (by retrieving an instance of `NgModuleRef` internally), even when the custom injector was provided (we try to find a token in a custom injector first and consult module injector after that).

With Ivy, we expanded the `ViewContainerRef.createComponent` function API to support direct references to the Component classes without going through the factory resolution step. As a result, there was no connection to the NgModule that declares the component. Thus, if you provide a custom injector, this is the only injector that is taken into account.

This commit updates the logic for the factory-less case to try retrieving an instance of an `NgModuleRef` using the DI tree which `ViewContainerRef` belongs to. The `NgModuleRef` instance is then used to get a hold of a module injector tree. This brings the factory-less and factory-based logic to more consistent state.

Closes #44897.

PR Close #44966
2022-02-08 09:57:20 -08:00
..
global build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
schematics fix(forms): Update the typed forms migration to use FormArray<T> instead of FormArray<T[]>. (#44933) 2022-02-02 01:58:18 +00:00
src fix(core): ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966) 2022-02-08 09:57:20 -08:00
test fix(core): ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966) 2022-02-08 09:57:20 -08:00
testing fix(core): flush delayed scoping queue while setting up TestBed (#44814) 2022-01-31 21:37:53 +00:00
BUILD.bazel ci: add golden files for runtime error codes (#44677) 2022-01-12 20:42:06 +00:00
index.ts refactor(core): made comment structure consistent in index.ts (#43684) 2021-10-21 18:39:58 +00:00
package.json refactor(compiler-cli): update peerDependencies to require rxjs ^7.4.0 (#43748) 2021-10-06 15:57:59 -07:00
PACKAGE.md docs: add package doc files (#26047) 2018-10-05 15:42:14 -07:00
public_api.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00