On this page
EventEmitter
class
Use in directives and components to emit custom events synchronously or asynchronously, and register handlers for those events by subscribing to an instance.
class EventEmitter<T> extends Subject {
constructor(isAsync: boolean = false)
__isAsync: boolean
emit(value?: T)
subscribe(generatorOrNext?: any, error?: any, complete?: any): any
}
Constructor
Creates an instance of this class that can deliver events synchronously or asynchronously. |
||
|
isAsync | When true, deliver events asynchronously. Optional. Default is |
Properties
Property | Description |
---|---|
__isAsync: boolean |
Internal |
Methods
emit()
|
||
---|---|---|
Emits an event containing a given value. |
||
|
value | The value to emit. Optional. Default is |
subscribe()
|
||||||
---|---|---|---|---|---|---|
Registers handlers for events emitted by this instance. |
||||||
|
generatorOrNext | When supplied, a custom handler for emitted events. Optional. Default is |
error | When supplied, a custom handler for an error notification from this emitter. Optional. Default is |
complete | When supplied, a custom handler for a completion notification from this emitter. Optional. Default is |
Returns
any
Usage notes
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>
Notes
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.
© 2010–2019 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v6.angular.io/api/core/EventEmitter