Angular Ionic @ViewChild 丢失引用

Angular Ionic @ViewChild looses reference

问题很简单

我有这样的参考资料

@ViewChild('myElement') myElementVar : SomeClass;

我引用的元素看起来像这样

<element #myElement *ngIf="someBoolean"></element>

someBoolean 变为假时,myElementVar 变为未定义,我知道 是因为 *ngIf 完全从 DOM 然后它丢失了引用,因为它不再存在了。

我想知道的是是否可以将
myElementVar重新分配给#myElement
someBoolean 再次成立。

通过使用 ChangeDetectorRef。

在以下示例中:您单击并激活切换功能,然后该功能删除第一行及其引用:

<h1 #myElement *ngIf="someBool">Hello World.</h1>

那么, 当您再次切换时,您会重新分配您引用的元素。

Link: https://stackblitz.com/edit/angular-roh6g8?file=src%2Fapp%2Fapp.component.ts

请注意 如果您仍然确保有条件检查您的引用是否存在并且 Angular 将不使用 ChangeDetectorRef 也可以这样做自动(内部)为您处理。