Уничтожает ли Angular созданные вручную компоненты, если они удалены из DOM?

#angular #dom #components #destroy

#angular #dom #Компоненты #уничтожить

Вопрос:

Уничтожает ли angular компонент, если мы добавляем и удаляем его из DOM вручную?

 constructor(
    private componentFactoryResolver: ComponentFactoryResolver,
    private appRef: ApplicationRef,
    private injector: Injector
) {
    // Create component
    const myComponentRef = this.componentFactoryResolver
        .resolveComponentFactory(MyComponent)
        .create(this.injector);
    this.appRef.attachView(myComponentRef.hostView);

    // Subscribe on 'someChange' event of the component
    myComponent.instance.someChange.subscribe(() => {
        // Should be unsubscribed if the component is destroyed
    });

    // Non Angular DOM manipulation
    const myComponentElement = componentRef.hostView.rootNodes[0];
    const containerElement = document.getElementById('container');

    containerElement.appendChild(myComponentElement);
    containerElement.innerHtml = '';
}
  

Еще немного деталей, еще немного деталей, еще немного деталей… StackOverflow немного туповат, чтобы понять, что код содержит все возможные детали

Комментарии:

1. Чтобы проверить это, не могли бы вы попробовать добавить таймер, в котором есть консоль, в компонент, который вы добавляете и удаляете. Вы можете проверить, уничтожен ли он, посмотрев на консоль

2. @SebaCherian, я проверил это в консоли. Angular не уничтожает динамические компоненты (или я делаю что-то неправильно