在Angular中,如果子组件需要将事件发送到父组件,可以使用@Output()修饰器和EventEmitter。但是有时候在子组件中使用Emit时会出现调用不起作用的问题。
通常,这个问题是由于子组件未正确引用Emit事件而导致的。要解决这个问题,需要在子组件中正确引用Emit事件。
下面是一个示例:
import { Component, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'child-component',
template:
})
export class ChildComponent {
@Output() myEvent = new EventEmitter();Child Component
constructor() { }
triggerMyEvent() { this.myEvent.emit('Event triggered from child!'); }
}
在上面的示例中,当单击“触发我的事件”按钮时,将触发myEvent事件,并将其传递给父组件。在父组件中,我们可以使用以下代码来捕获并处理这个事件:
import { Component } from '@angular/core';
@Component({
selector: 'parent-component',
template:
})
export class ParentComponent {
constructor() { }Parent Component
onMyEvent(event: string) { console.log(event); // Event triggered from child! } }
在这个示例中,当子组件触发myEvent事件时,它将调用onMyEvent()方法,该方法在父组件中被定义。在这个方法中,我们可以处理事件并将其记录到控制台中。
因此,确保在子组件中正确引用emit事件,