Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular MatDialog在entry组件中未定义_Angular_Typescript - Fatal编程技术网

Angular MatDialog在entry组件中未定义

Angular MatDialog在entry组件中未定义,angular,typescript,Angular,Typescript,我使用最新的Angular版本并修改模板。我有一个名为toolbar.module.ts的模块,其中包含一个entryComponent: @NgModule({ declarations: [ToolbarComponent, ToolbarDropdownComponent], imports: [ CommonModule, MatDialogModule, [...] ], exports: [ToolbarComponent], entryC

我使用最新的Angular版本并修改模板。我有一个名为
toolbar.module.ts
的模块,其中包含一个
entryComponent

@NgModule({
  declarations: [ToolbarComponent, ToolbarDropdownComponent],
  imports: [
    CommonModule,
    MatDialogModule,
    [...]
  ],
  exports: [ToolbarComponent],
  entryComponents: [ToolbarDropdownComponent]
})
export class ToolbarModule {
}
ToolbarDropdownComponent
内部,我使用它如下:

[...]
export class ToolbarDropdownComponent implements OnInit {

  constructor(public dialog: MatDialog) { }

  foo() {
     this.dialog.open(...); <--- this.dialog is undefined
  }
}
[…]
导出类ToolbarDropdownComponent实现OnInit{
构造函数(公共对话框:MatDialog){}
foo(){

this.dialog.open(…);它是公共的。将它设为私有,您可以使用
this
。我使用
this
,私有或公共不应该有什么区别:编辑:确认,很遗憾,它不能在组件文件中添加
MatDialog
的导入部分。参考:
export class ToolbarDropdownComponent implements OnInit {

  constructor(private dialog: MatDialog) { }

  foo() {
     this.dialog.open(...); 
  }
}