refactor(core): Remove circular dependency on ApplicationRef
(#39621)
`ViewRef` and `ApplicationRef` had a circular reference. This change introduces `ViewRefTracker` which is a subset of `ApplicationRef` for this purpose. PR Close #39621
This commit is contained in:
parent
1ac68e3f2b
commit
c461acd12e
@ -112,369 +112,50 @@
|
||||
"packages/compiler/src/render3/view/styling_builder.ts",
|
||||
"packages/compiler/src/render3/view/template.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/application_tokens.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/metadata.ts",
|
||||
"packages/core/src/metadata/directives.ts",
|
||||
"packages/core/src/render3/jit/directive.ts",
|
||||
"packages/core/src/render3/jit/environment.ts",
|
||||
"packages/core/src/render3/index.ts",
|
||||
"packages/core/src/render3/component.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/metadata/do_boostrap.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
"packages/core/src/render3/view_ref.ts",
|
||||
"packages/core/src/linker/view_container_ref.ts",
|
||||
"packages/core/src/linker/component_factory.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts",
|
||||
"packages/core/src/linker/view_container_ref.ts",
|
||||
"packages/core/src/linker/ng_module_factory.ts",
|
||||
"packages/core/src/linker/component_factory_resolver.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/linker/component_factory.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/render3/component.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/linker/template_ref.ts",
|
||||
"packages/core/src/linker/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/linker/template_ref.ts",
|
||||
"packages/core/src/linker/view_ref.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/linker/template_ref.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/linker/template_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/render3/view_ref.ts",
|
||||
"packages/core/src/linker/view_container_ref.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
"packages/core/src/linker/template_ref.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts",
|
||||
"packages/core/src/linker/view_container_ref.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/linker/view_container_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/view/ng_module.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/view/ng_module.ts",
|
||||
"packages/core/src/view/util.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/view/ng_module.ts",
|
||||
"packages/core/src/view/util.ts",
|
||||
"packages/core/src/view/errors.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/view/ng_module.ts",
|
||||
"packages/core/src/view/util.ts",
|
||||
"packages/core/src/view/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/view/ng_module.ts",
|
||||
"packages/core/src/view/util.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/refs.ts",
|
||||
"packages/core/src/view/view_attach.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/compiler.ts",
|
||||
"packages/core/src/render3/component_ref.ts",
|
||||
"packages/core/src/view/provider.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/render3/util/global_utils.ts",
|
||||
"packages/core/src/render3/util/change_detection_utils.ts",
|
||||
"packages/core/src/render3/instructions/change_detection.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/application_ref.ts",
|
||||
"packages/core/src/render3/util/global_utils.ts",
|
||||
"packages/core/src/render3/util/change_detection_utils.ts",
|
||||
"packages/core/src/render3/util/discovery_utils.ts",
|
||||
"packages/core/src/render3/instructions/lview_debug.ts",
|
||||
"packages/core/src/core.ts",
|
||||
"packages/core/src/metadata.ts",
|
||||
"packages/core/src/metadata/directives.ts",
|
||||
"packages/core/src/render3/jit/directive.ts",
|
||||
"packages/core/src/render3/jit/environment.ts",
|
||||
"packages/core/src/render3/index.ts",
|
||||
"packages/core/src/render3/component.ts",
|
||||
"packages/core/src/render3/instructions/shared.ts",
|
||||
"packages/core/src/error_handler.ts",
|
||||
"packages/core/src/errors.ts",
|
||||
"packages/core/src/view/types.ts",
|
||||
"packages/core/src/linker/component_factory.ts",
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
"packages/core/src/linker/component_factory.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/change_detection/change_detection.ts",
|
||||
@ -490,6 +171,13 @@
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/change_detection/change_detector_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts",
|
||||
"packages/core/src/linker/view_container_ref.ts",
|
||||
"packages/core/src/linker/template_ref.ts",
|
||||
"packages/core/src/linker/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/change_detection/differs/default_iterable_differ.ts",
|
||||
"packages/core/src/change_detection/differs/iterable_differs.ts"
|
||||
@ -607,6 +295,15 @@
|
||||
"packages/core/src/linker/component_factory_resolver.ts",
|
||||
"packages/core/src/linker/ng_module_factory.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/linker/template_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts",
|
||||
"packages/core/src/linker/view_container_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/linker/view_container_ref.ts",
|
||||
"packages/core/src/render3/view_ref.ts"
|
||||
],
|
||||
[
|
||||
"packages/core/src/metadata/directives.ts",
|
||||
"packages/core/src/render3/jit/directive.ts"
|
||||
|
@ -364,11 +364,11 @@ const R3ViewContainerRef = class ViewContainerRef extends VE_ViewContainerRef {
|
||||
};
|
||||
|
||||
function getViewRefs(lContainer: LContainer): ViewRef[]|null {
|
||||
return lContainer[VIEW_REFS];
|
||||
return lContainer[VIEW_REFS] as ViewRef[];
|
||||
}
|
||||
|
||||
function getOrCreateViewRefs(lContainer: LContainer): ViewRef[] {
|
||||
return lContainer[VIEW_REFS] || (lContainer[VIEW_REFS] = []);
|
||||
return (lContainer[VIEW_REFS] || (lContainer[VIEW_REFS] = [])) as ViewRef[];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6,7 +6,6 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ApplicationRef} from '../application_ref';
|
||||
import {ChangeDetectorRef} from '../change_detection/change_detector_ref';
|
||||
|
||||
/**
|
||||
@ -104,5 +103,15 @@ export abstract class EmbeddedViewRef<C> extends ViewRef {
|
||||
|
||||
export interface InternalViewRef extends ViewRef {
|
||||
detachFromAppRef(): void;
|
||||
attachToAppRef(appRef: ApplicationRef): void;
|
||||
attachToAppRef(appRef: ViewRefTracker): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface for tracking root `ViewRef`s in `ApplicationRef`.
|
||||
*
|
||||
* NOTE: Importing `ApplicationRef` here directly creates circular dependency, which is why we have
|
||||
* a subset of the `ApplicationRef` interface `ViewRefTracker` here.
|
||||
*/
|
||||
export interface ViewRefTracker {
|
||||
detachView(viewRef: ViewRef): void;
|
||||
}
|
||||
|
@ -6,7 +6,9 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {Injector, SchemaMetadata, Type} from '../../core';
|
||||
import {Injector} from '../../di/injector';
|
||||
import {Type} from '../../interface/type';
|
||||
import {SchemaMetadata} from '../../metadata/schema';
|
||||
import {Sanitizer} from '../../sanitization/sanitizer';
|
||||
import {KeyValueArray} from '../../util/array_utils';
|
||||
import {assertDefined} from '../../util/assert';
|
||||
|
@ -129,7 +129,7 @@ export interface LContainer extends Array<any> {
|
||||
* NOTE: This is stored as `any[]` because render3 should really not be aware of `ViewRef` and
|
||||
* doing so creates circular dependency.
|
||||
*/
|
||||
[VIEW_REFS]: any[]|null;
|
||||
[VIEW_REFS]: unknown[]|null;
|
||||
}
|
||||
|
||||
// Note: This hack is necessary so we don't erroneously get a circular dependency
|
||||
|
@ -6,10 +6,9 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ApplicationRef} from '../application_ref';
|
||||
import {ChangeDetectorRef as viewEngine_ChangeDetectorRef} from '../change_detection/change_detector_ref';
|
||||
import {ViewContainerRef as viewEngine_ViewContainerRef} from '../linker/view_container_ref';
|
||||
import {EmbeddedViewRef as viewEngine_EmbeddedViewRef, InternalViewRef as viewEngine_InternalViewRef} from '../linker/view_ref';
|
||||
import {EmbeddedViewRef as viewEngine_EmbeddedViewRef, InternalViewRef as viewEngine_InternalViewRef, ViewRefTracker} from '../linker/view_ref';
|
||||
import {collectNativeNodes} from './collect_native_nodes';
|
||||
import {checkNoChangesInRootView, checkNoChangesInternal, detectChangesInRootView, detectChangesInternal, markViewDirty, storeCleanupWithContext} from './instructions/shared';
|
||||
import {CONTEXT, FLAGS, LView, LViewFlags, TVIEW} from './interfaces/view';
|
||||
@ -24,7 +23,7 @@ export interface viewEngine_ChangeDetectorRef_interface extends viewEngine_Chang
|
||||
|
||||
export class ViewRef<T> implements viewEngine_EmbeddedViewRef<T>, viewEngine_InternalViewRef,
|
||||
viewEngine_ChangeDetectorRef_interface {
|
||||
private _appRef: ApplicationRef|null = null;
|
||||
private _appRef: ViewRefTracker|null = null;
|
||||
private _viewContainerRef: viewEngine_ViewContainerRef|null = null;
|
||||
|
||||
get rootNodes(): any[] {
|
||||
@ -284,7 +283,7 @@ export class ViewRef<T> implements viewEngine_EmbeddedViewRef<T>, viewEngine_Int
|
||||
renderDetachView(this._lView[TVIEW], this._lView);
|
||||
}
|
||||
|
||||
attachToAppRef(appRef: ApplicationRef) {
|
||||
attachToAppRef(appRef: ViewRefTracker) {
|
||||
if (this._viewContainerRef) {
|
||||
throw new Error('This view is already attached to a ViewContainer!');
|
||||
}
|
||||
|
@ -6,7 +6,6 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ApplicationRef} from '../application_ref';
|
||||
import {ChangeDetectorRef} from '../change_detection/change_detection';
|
||||
import {Injector} from '../di/injector';
|
||||
import {InjectFlags} from '../di/interface/injector';
|
||||
@ -17,13 +16,13 @@ import {ElementRef} from '../linker/element_ref';
|
||||
import {InternalNgModuleRef, NgModuleRef} from '../linker/ng_module_factory';
|
||||
import {TemplateRef} from '../linker/template_ref';
|
||||
import {ViewContainerRef} from '../linker/view_container_ref';
|
||||
import {EmbeddedViewRef, InternalViewRef, ViewRef} from '../linker/view_ref';
|
||||
import {EmbeddedViewRef, InternalViewRef, ViewRef, ViewRefTracker} from '../linker/view_ref';
|
||||
import {stringify} from '../util/stringify';
|
||||
import {VERSION} from '../version';
|
||||
|
||||
import {callNgModuleLifecycle, initNgModule, resolveNgModuleDep} from './ng_module';
|
||||
import {asElementData, asProviderData, asTextData, DepFlags, ElementData, NgModuleData, NgModuleDefinition, NodeDef, NodeFlags, Services, TemplateData, ViewContainerData, ViewData, ViewDefinitionFactory, ViewState} from './types';
|
||||
import {markParentViewsForCheck, resolveDefinition, rootRenderNodes, splitNamespace, tokenKey, viewParentEl} from './util';
|
||||
import {markParentViewsForCheck, resolveDefinition, rootRenderNodes, tokenKey, viewParentEl} from './util';
|
||||
import {attachEmbeddedView, detachEmbeddedView, moveEmbeddedView, renderDetachView} from './view_attach';
|
||||
|
||||
const EMPTY_CONTEXT = {};
|
||||
@ -249,7 +248,7 @@ export class ViewRef_ implements EmbeddedViewRef<any>, InternalViewRef {
|
||||
/** @internal */
|
||||
_view: ViewData;
|
||||
private _viewContainerRef: ViewContainerRef|null;
|
||||
private _appRef: ApplicationRef|null;
|
||||
private _appRef: ViewRefTracker|null;
|
||||
|
||||
constructor(_view: ViewData) {
|
||||
this._view = _view;
|
||||
@ -317,7 +316,7 @@ export class ViewRef_ implements EmbeddedViewRef<any>, InternalViewRef {
|
||||
Services.dirtyParentQueries(this._view);
|
||||
}
|
||||
|
||||
attachToAppRef(appRef: ApplicationRef) {
|
||||
attachToAppRef(appRef: ViewRefTracker) {
|
||||
if (this._viewContainerRef) {
|
||||
throw new Error('This view is already attached to a ViewContainer!');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user