有对话框:public dialog: MatDialog
和打开对话框的方法open():
this.dialog.open(MyDialogComponent, conf);
open()
的描述是:
open<T, D = any, R = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MatDialogConfig<D>): MatDialogRef<T, R>;
这是否意味着我应该将第一个参数作为实例组件传递?
为什么在示例中我们使用MyDialogComponent
而不是新的MyDialogComponent()
?如果MyDialogComponent
在构造函数中具有依赖项注入怎么办?
答案 0 :(得分:2)
对象对话框将动态创建该对象,并且DI将为您注入依赖项
该组件例如AService
将由DI系统注入
@Component({
selector: 'dialog-overview-example-dialog',
templateUrl: 'dialog-overview-example-dialog.html',
providers: [AService]
})
export class DialogOverviewExampleDialog {
constructor(
public dialogRef: MatDialogRef<DialogOverviewExampleDialog>,
@Inject(MAT_DIALOG_DATA) public data: DialogData , public AService:AService ) {
console.log(AService)
}
onNoClick(): void {
this.dialogRef.close();
}
}