fix(core): call ngOnDestroy for tree-shakeable providers (#28943)

Prior to this change, any provider that was independently resolved using
its InjectableDef would not be considered when destroying the module it
was requested from. This commit provides a fix for this issue by storing
the resolved provider in the module's list of provider definitions.

Fixes #28927

PR Close #28943
This commit is contained in:
JoostK
2019-02-23 16:18:30 +01:00
committed by Igor Minar
parent f8cdda63d4
commit 30b04424a3
2 changed files with 23 additions and 1 deletions

View File

@ -109,7 +109,7 @@ export function resolveNgModuleDep(
} else if (
(injectableDef = getInjectableDef(depDef.token)) && targetsModule(data, injectableDef)) {
const index = data._providers.length;
data._def.providersByKey[depDef.tokenKey] = {
data._def.providers[index] = data._def.providersByKey[depDef.tokenKey] = {
flags: NodeFlags.TypeFactoryProvider | NodeFlags.LazyProvider,
value: injectableDef.factory,
deps: [], index,