首页 > 解决方案 > 如何访问组件的 typeof 实例中的成员?

问题描述

MatDialog在我的应用程序中使用有角度的材料进行弹出窗口。在这里,我创建了一个父弹出组件,我在其中作为参数ParentComponent传递并在父组件的构造函数中访问此子组件。ChildComponent但是,此参数的类型是typeof。我想访问成员,例如:使用此实例TestFunction将子组件内部访问父组件。typeof

基本上,我有弹出窗口的关闭方法,应该调用TestFunction()保存按钮子组件。 在此处输入图像描述 这是代码:

  1. 将子组件作为参数传递给父组件:

    constructor(private _dialog: MatDialog){}
    let dialogRef = this._dialog.open(ParentComponent, {
      data: { component: ChildComponent }
    });
    
  2. 子组件:

    TestFunction(){ console.log('test message')}
    
  3. 在父组件中访问:

     constructor(public dialogRef: MatDialogRef<ParentComponent>,
              @Inject(MAT_DIALOG_DATA) public data: any) { }
    
      ngOnInit() {
         console.log('data in component: ',this.data.prototype);
    
         this.data.TestFunction();
    
     }
    

在子组件的控制台中,我得到:

data in component:  
{component: ƒ}
component: class ChildComponent
ctorParameters: () => {…}
arguments: (...)
caller: (...)
length: 3

但我想要TestFunction()。

标签: javascriptangularangular-material

解决方案


dialogRef: MatDialogRef<YourComponent>;

this.dialogRef = this.matDialog.open(YourComponent, {
     disableClose: false
});

// Child Functionality
this.dialogRef.componentInstance.TestFunction()

推荐阅读