如何使用 EventEmitter 输出从子级到父级调用函数并订阅

问题描述

我需要使用事件从 modalComponent 刷新表。

在子组件中

 @Output() callrefresh = new EventEmitter<string>();

添加数据时

this.callrefresh .emit('I want to call a function');

在父组件中我想激活这个功能

    refreshTable(){ 
    this.tableRefresh();
    }

有什么帮助吗?一个例子会很好

在父组件中我有一个表格,在子组件中有一个模态。当我在子组件中保存数据行时,我希望激活父组件中的刷新功能

例如在子组件中

this.service.save(this.car).subscribe(
        (result) => {
          this.closeModal();
          this.callrefresh .emit('I want to call a function');
        },

在父组件中

 refreshTable(){ 
this.tableRefresh();
}


     tableRefresh(      
    page?: Page
  ): void {
    this.subscriptions.push(
      this.service
        .findAlldata(
          this.sort.dir,this.page.pageNumber,this.page.size,this.sort.prop
        )
        .subscribe({
          next: (data: any) => {
           all paged data logic
            );              
          },error: (error: any) => {
            console.log(error);
          },complete: () => {
            console.log('complete');
          },})
    );
  }

解决方法

您只需要使用由您的输出触发的事件。当您发出时,refreshTable() 被调用

XX:+UseCompressedOops

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...