问题很简单
我有一个这样的引用
@ViewChild('myElement') myElementVar : SomeClass;
我引用的元素看起来像这样
<element #myElement *ngIf="someBoolean"></element>
当 someBoolean
变为 false 时,myElementVar
变为未定义,我知道是因为 *ngIf
完全删除从 DOM 中获取元素,然后它会丢失引用,因为它不再存在。
我想知道是否可以将 myElementVar
重新分配给 #myElement
someBoolean
再次变为 true。
最佳答案
通过使用 ChangeDetectorRef。
在以下示例中:单击并激活切换功能,然后该功能将删除第一行及其引用:
<h1 #myElement *ngIf="someBool">Hello World.</h1>
那么, 当您再次切换时,您会重新分配引用的元素。
链接:https://stackblitz.com/edit/angular-roh6g8?file=src%2Fapp%2Fapp.component.ts
请注意,如果您仍然确保有条件检查您的引用是否存在,并且 Angular 会自动(内部)为您处理该问题,那么您也可以在没有 ChangeDetectorRef 的情况下执行此操作。
关于javascript - Angular Ionic @ViewChild 失去引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092408/