我有一个子组件,当前在页面上不可见。使用布尔值对其进行操作。
即使不显示它,我也要执行其功能。 我已经声明了子组件实例,如下所示:
@ViewChild(ChildComponent) child: ChildComponent;
但是当我执行其功能时, child 变量显示为未定义,因为它是隐藏的(这就是我的想法)。
答案 0 :(得分:2)
如果您正在使用 * ngIf 隐藏您的ChildComponent,它将不会读取您的@ViewChild(ChildComponent),因为 ngIf表示您正在DOM上省略了一些在物理上不会可见。
如果您在ChildComponent上使用 [hidden] ,则它会隐藏在DOM中,但仍存在于模板中,而您的@ViewChild(ChildComponent)将是能够阅读。
<child [hidden]="true"></child> // Try using [hidden] rather than *ngIf