When exactly is component destroyed?
When Angular runs change detection and the binding to the ngIf
input of the NgIf
directive is updated, NgIf
removes the component from the DOM. After the component is removed from the DOM ngDestroy()
is called and then the component is free to get garbage collected.
If the parent component is removed while the *ngIf
expression is true, the parent and child will be destroyed together. I don't know what ngDestroy()
is called first though.