EventEmitter
class
npm Package | @angular/core |
---|---|
Module | import { EventEmitter } from '@angular/core'; |
Source | core/src/event_emitter.ts |
Overview
class EventEmitter<T> extends Subject { constructor(isAsync: boolean = false) ___isAsync: boolean emit(value?: T) subscribe(generatorOrNext?: any, error?: any, complete?: any): any }
Description
Use by directives and components to emit custom Events.
Examples
In the following example, Zippy
alternatively emits open
and close
events when its title gets clicked:
@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); } } }
The events payload can be accessed by the parameter $event
on the components output event handler:
<zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
Uses Rx.Observable but provides an adapter to make it work as specified here: https://github.com/jhusain/observable-spec
Once a reference implementation of the spec is available, switch to it.
Constructor
constructor(isAsync: boolean = false)
Creates an instance of EventEmitter
, which depending on isAsync
, delivers events synchronously or asynchronously.
Members
___isAsync: boolean
emit(value?: T)
subscribe(generatorOrNext?: any, error?: any, complete?: any): any
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v4.angular.io/api/core/EventEmitter