Подтвердить что ты не робот

Когда именно уничтожается компонент?

В Angular 2 с компиляцией Ahead-of-Time (AOT) у меня есть родительский компонент и дочерний компонент, например:

<div>
    <h1>I am a parent</h1>
    <myChild *ngIf="showChild"></myChild>
</div>

Я знаю, что дочерний шаблон вставляется в DOM динамически.

Если showChild имеет значение false, когда именно Angular уничтожает дочерний компонент? Или Angular уничтожит дочерний компонент вообще? В это время Angular вызывает метод onDestroy()?

4b9b3361

Ответ 1

Когда Angular запускает обнаружение изменений и обновляется привязка к вводу ngIf директивы ngIf, ngIf удаляет компонент из DOM. После того, как компонент удален из DOM ngDestroy(), вызывается, а затем компонент может получить сбор мусора.

Если родительский компонент удален, а выражение *ngIf равно true, родительский и дочерний будут уничтожены вместе. Я не знаю, что называется ngDestory() первым.