Spec-Zone.ru › Angular

EventEmitter

Используйте в компонентах с директивой @Output для синхронной или асинхронной отправки пользовательских событий и регистрации обработчиков этих событий путем подписки на экземпляр.

Объявление выходных параметров с помощью декоратора @Output

API

interface EventEmitter<T> extends Subject<T>, OutputRef<T> {
  emit(value?: T | undefined): void;
  subscribe(next?: ((value: T) => void) | undefined, error?: ((error: any) => void) | undefined, complete?: (() => void) | undefined): Subscription;
  subscribe(observerOrNext?: any, error?: any, complete?: any): Subscription;
}

emit

void

Отправляет событие, содержащее заданное значение.

@paramvalueT | undefined

Отправляемое значение.

@returnsvoid

subscribe

Subscription

Регистрирует обработчики событий, отправляемых этим экземпляром.

@paramnext((value: T) => void) | undefined

Если указан, пользовательский обработчик отправляемых событий.

@paramerror((error: any) => void) | undefined

Если указан, пользовательский обработчик уведомления об ошибке от этого эмиттера.

@paramcomplete(() => void) | undefined

Если указан, пользовательский обработчик уведомления о завершении от этого эмиттера.

@returnsSubscription

subscribe

Subscription

Регистрирует обработчики событий, отправляемых этим экземпляром.

@paramobserverOrNextany

Если указан, пользовательский обработчик отправляемых событий или объект наблюдателя.

@paramerrorany

Если указан, пользовательский обработчик уведомления об ошибке от этого эмиттера.

@paramcompleteany

Если указан, пользовательский обработчик уведомления о завершении от этого эмиттера.

@returnsSubscription

Примечания по использованию

Расширяет RxJS Subject для Angular, добавляя метод emit().

В следующем примере компонент определяет два выходных свойства, создающих эмиттеры событий. При нажатии на заголовок эмиттер отправляет событие открытия или закрытия, чтобы переключить текущее состояние видимости.

@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>

Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/core/EventEmitter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API