尝试用ng-template
查询CdkPortalOutlet
总是不成功,我不明白为什么?
<ng-template CdkPortalOutlet></ng-template>
@ViewChild(CdkPortalOutlet) test: CdkPortalOutlet;
stackblitz
最佳答案
为了在CdkPortalOutlet
模板中使用AppComponent
指令,您需要在PortalModule
中导入AppModule
(即,已声明AppComponent的NgModule)
import { PortalModule } from '@angular/cdk/portal';
...
@NgModule({
imports: [ BrowserModule, FormsModule, PortalModule, OverlayModule ],
^^^^^^^^^^^^
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
此外,Angular HTML解析器区分大小写,因此您需要像这样使用它:
<ng-template cdkPortalOutlet></ng-template>
^^^
lower case
Forked Stackblitz
关于javascript - @ViewChild(CdkPortalOutlet)在AfterViewInit中返回未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54054997/