Angular 不使用触发器生命周期挂钩访问子组件的实例

Angular 不使用触发器生命周期挂钩访问子组件的实例,angular,angular-dynamic-components,Angular,Angular Dynamic Components,我有一个仪表板,上面有一些不同类型的小部件。我使用ng动态组件来渲染它们 编辑: 这是我的问题:当我尝试从我的小部件(通过实例或EventEmitter)获取任何数据时,生命周期将重新启动,以下是我如何从小部件收集数据: this.myWidgets[index] = component.componentRef.instance.configuration; 然后小部件“重新加载”,生命周期从零开始重新启动(构造函数,onInit,…),这不是我想要的。。 为什么仅仅通过访问数据就可以重新启

我有一个仪表板,上面有一些不同类型的小部件。我使用ng动态组件来渲染它们

编辑:

这是我的问题:当我尝试从我的小部件(通过实例或EventEmitter)获取任何数据时,生命周期将重新启动,以下是我如何从小部件收集数据:

this.myWidgets[index] = component.componentRef.instance.configuration;
然后小部件“重新加载”,生命周期从零开始重新启动(构造函数,onInit,…),这不是我想要的。。 为什么仅仅通过访问数据就可以重新启动所有这些过程?我用
Output()EventEmitter

下面是我如何获得小部件组件的:

@ViewChildren(DynamicComponent) components: QueryList<DynamicComponent>;
@ViewChildren(DynamicComponent)组件:QueryList;
和HTML格式:

 <ndc-dynamic
          class="widget"
          *ngIf="!isWorkspaceLoading"
          [ndcDynamicComponent]="getComponentFromWidgetType(widget.type)"
          [ndcDynamicInputs]="widgetInputs[wIdx]"
          [ndcDynamicOutputs]="widgetOutputs[wIdx]"
  ></ndc-dynamic>

如何在不触发任何生命周期挂钩的情况下访问我孩子的数据


------

你能在StackBlitz上创建一个最小的复制吗?很难复制,因为它使用了我的Web服务,但我会尝试复制它。我有太多的组件和模块要导入,但我认为问题来自这样一个事实:当我更改实例中的属性时(例如,通过“componentRef.instance.id=newId”)ngOnInit会重新启动,我的组件会再次尝试渲染。有没有办法在不触发角度生命周期的情况下修改组件的实例?在DOM中,就好像组件被完全移除和替换一样(但即使在DOM中,也不会显示该组件)