EventEmitter
Stable Class
Обзор класса
class EventEmitter extends Subject {
constructor(isAsync?: boolean)
emit(value?: T)
subscribe(generatorOrNext?: any, error?: any, complete?: any) : any
}
Описание класса
Используется директивами и компонентами для выдачи пользовательских событий.
Примеры
В следующем примере, Zippy поочерёдно генерирует события open и close при нажатии на заголовок:
@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);
}
}
}
Данные события могут быть получены через параметр $event в обработчике события компонента:
<zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
Использует Rx.Observable, но предоставляет адаптер, чтобы он работал согласно указаниям здесь: https://github.com/jhusain/observable-spec
После появления реализаций спецификации, переключиться на неё.
Конструктор
constructor(isAsync?: boolean)
Создаёт экземпляр [EventEmitter], который в зависимости от [isAsync] доставляет события синхронно или асинхронно.
Подробности класса
emit(value?: T)
subscribe(generatorOrNext?: any, error?: any, complete?: any) : any
экспортировано из @angular/core/index, определено в @angular/core/src/facade/async.ts
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v2.angular.io/docs/ts/latest/api/core/index/EventEmitter-class.html