On this page
EventEmitter
class  final 
Use in components with the @Output directive to emit custom events synchronously or asynchronously, and register handlers for those events by subscribing to an instance.
class EventEmitter<T> extends Subject<T> {
  constructor(isAsync?: boolean): EventEmitter<T>
  emit(value?: T): void
  subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription
}
   See also
Constructor
Creates an instance of this class that can deliver events synchronously or asynchronously.  | 
      |||
        
          | 
      
isAsync | 
            boolean | 
            When true, deliver events asynchronously. Optional. Default is   | 
           
Returns
Methods
| 
         
         emit()
          | 
      |||
|---|---|---|---|
Emits an event containing a given value.  | 
      |||
        
          | 
      
value | 
            T | 
            The value to emit. Optional. Default is   | 
           
Returns
void
| 
         
         subscribe()
          | 
      |||||||||
|---|---|---|---|---|---|---|---|---|---|
Registers handlers for events emitted by this instance.  | 
      |||||||||
        
          | 
      
next | 
            (value: T) => void | 
            When supplied, a custom handler for emitted events. Optional. Default is   | 
           
error | 
            (error: any) => void | 
            When supplied, a custom handler for an error notification from this emitter. Optional. Default is   | 
           
complete | 
            () => void | 
            When supplied, a custom handler for a completion notification from this emitter. Optional. Default is   | 
           
Returns
Subscription
subscribe(observerOrNext?: any, error?: any, complete?: any): Subscription
         Parameters
observerOrNext | 
            any | 
            When supplied, a custom handler for emitted events, or an observer object. Optional. Default is   | 
           
error | 
            any | 
            When supplied, a custom handler for an error notification from this emitter. Optional. Default is   | 
           
complete | 
            any | 
            When supplied, a custom handler for a completion notification from this emitter. Optional. Default is   | 
           
Returns
Subscription
Usage notes
Extends RxJS Subject for Angular by adding the emit() method.
In the following example, a component defines two output properties that create event emitters. When the title is clicked, the emitter emits an open or close event to toggle the current visibility state.
@Component({
  selector: 'zippy',
  template: `
  <div class="zippy">
    <div (click)="toggle()">Toggle</div>
    <div [hidden]="!visible">
      <ng-content></ng-content>
    </div>
 </div>`})
export class Zippy {
  visible: boolean = true;
  @Output() open: EventEmitter<any> = new EventEmitter();
  @Output() close: EventEmitter<any> = new EventEmitter();
  toggle() {
    this.visible = !this.visible;
    if (this.visible) {
      this.open.emit(null);
    } else {
      this.close.emit(null);
    }
  }
}
   Access the event object with the $event argument passed to the output event handler:
<zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
  © 2010–2022 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
 https://v13.angular.io/api/core/EventEmitter