Javascript 如何将事件从子组件激发到父组件? parent.component.ts parent.component.html 我想做的是,当我单击子组件按钮时,我想执行parenttest()函数 但是当我使用此部件时,显示另一个单击此处按钮。但是我不想再显示一个按钮。因为我已经在网格中显示了child.component.html按钮 现在我想在单击该按钮后执行parenttest()如何解决此问题

Javascript 如何将事件从子组件激发到父组件? parent.component.ts parent.component.html 我想做的是,当我单击子组件按钮时,我想执行parenttest()函数 但是当我使用此部件时,显示另一个单击此处按钮。但是我不想再显示一个按钮。因为我已经在网格中显示了child.component.html按钮 现在我想在单击该按钮后执行parenttest()如何解决此问题,javascript,angular,Javascript,Angular,您可以使用输出和事件发射器实现这一点。更新以下代码: @Output() clicked = new EventEmitter(); callParent(){ this.clicked.emit() } 在parent.component.html中,添加子选择器及其引发的事件: <app-child (clicked)="test()"></app-child> 现在在child.component.ts中添加以下代码: @Ou

您可以使用
输出
事件发射器
实现这一点。更新以下代码:

@Output() clicked = new EventEmitter();

callParent(){
     this.clicked.emit()
  }
parent.component.html
中,添加子选择器及其引发的事件:

<app-child (clicked)="test()"></app-child>
现在在
child.component.ts
中添加以下代码:

@Output() clicked = new EventEmitter();

callParent(){
     this.clicked.emit()
  }
单击按钮时触发
callParent
方法:

  <button (click)="callParent()"> click </button>   
点击

下面是一个工作示例:

this.eventfire.next()应该是
this.eventfire.emit()谢谢,但仍然没有解决我的问题!您的具体情况是什么?事件未生成还是显示两个单击此处按钮?我无法理解您的问题陈述。如果您可以显示UI的屏幕截图,这将非常有用。@Kevin_Mac什么是网格按钮?新创建的按钮是什么?我们不知道。如果您需要帮助,可以适当地重新构造您的问题
<app-child (clicked)="test()"></app-child>
test(){
    alert('parent function called from child!')
  }
@Output() clicked = new EventEmitter();

callParent(){
     this.clicked.emit()
  }
  <button (click)="callParent()"> click </button>