Как получить доступ к членам в экземпляре компонента? - PullRequest
1 голос
/ 24 сентября 2019

Я использую MatDialog угловой материал для всплывающих окон в моем приложении.Здесь я создал родительский всплывающий компонент ParentComponent, где я передаю ChildComponent в качестве параметра и получаю доступ к этому дочернему компоненту в конструкторе родительского компонента.Однако тип этого параметра: typeof.Я хочу получить доступ к членам, например: TestFunction внутри дочернего компонента в родительский компонент, используя этот экземпляр typeof.

В основном, у меня есть метод закрытия всплывающего окна, который должен вызвать TestFunction() дочернего компонента кнопки сохранения,enter image description here Вот код:

  1. Передача дочернего компонента в качестве параметра родительскому компоненту:

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

    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 ().

1 Ответ

0 голосов
/ 24 сентября 2019
dialogRef: MatDialogRef<YourComponent>;

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

// Child Functionality
this.dialogRef.componentInstance.TestFunction()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...