Use in directives and components to emit custom events synchronously or asynchronously, and register handlers for those events by subscribing to an instance.
构造函数 Creates an instance of this class that can deliver events synchronously or asynchronously.
constructor(isAsync: boolean = false) 参数 isAsyncWhen true, deliver events asynchronously.
可选. 默认值是 false
.
属性 属性名 类型 说明 __isAsyncboolean
Internal
方法 Emits an event containing a given value.
emit(value?: T) 参数 valueThe value to emit.
可选. 默认值是 undefined
.
Registers handlers for events emitted by this instance.
subscribe(generatorOrNext?: any, error?: any, complete?: any): any 参数 generatorOrNextWhen supplied, a custom handler for emitted events.
可选. 默认值是 undefined
.
errorWhen supplied, a custom handler for an error notification from this emitter.
可选. 默认值是 undefined
.
completeWhen supplied, a custom handler for a completion notification from this emitter.
可选. 默认值是 undefined
.
返回值 any
使用说明 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.