javascript - Angular Ionic @ViewChild 失去引用

标签 javascript angular typescript viewchild

问题很简单

我有一个这样的引用

@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/

相关文章:

javascript - 如何在更改事件完成之前更新 DOM?

typescript - 忽略来自 VS2017 中第三方 javascript 文件的 TS7027 警告?

javascript - 如何在 Angular 2 中实现 Chart.js?

angular - Protractor 等待休息调用完成

javascript - Angular Uncaught( promise ): ChunkLoadError: Loading chunk XXXfailed

angular - 在加载所有函数/数据之前,不要显示 .html 组件。 Angular 2

javascript - JavaScript 中无需刷新的窗口焦点

javascript - [HTML DOM].style 未定义? (html5 应用程序 : address book)

javascript - 如何更改对象数组的子对象的值?

javascript - NodeJS setInterval错误