* ngIf中的@ViewChild
题 @ViewChild显示模板中的相应元素后,最优雅的方法是什么? 下面是一个例子。还提供柱塞。 模板: <div id="layout" *ngIf="display"> <div #contentPlaceholder></div> </div> 零件: export class AppComponent { display = false; @ViewChild('contentPlaceholder', {read: ViewContainerRef}) viewContainerRef; show() { this.display = true; console.log(this.viewContainerRef); // undefined setTimeout(()=> { console.log(this.viewContainerRef); // OK }, 1); } } 我有一个默认情况下隐藏其内容的组件。当有人调用show()method时,它变得可见。但是,在Angular 2更改检测完成之前,我无法引用viewContainerRef。我通常将所有必需的动作包装成setTimeout(()=>{},1)上述所示。有没有更正确的方法? 我知道有一个选项ngAfterViewChecked,但它会导致太多无用的调用。 答案(柱塞)