Объявление событий элемента управления в клиентском компоненте
-
Генерируемые элементом управления события должны быть проинициализированы.
-
Обработчики событий, используемые в классе реализации, должны быть связаны с контекстом.
Инициализация событий
Для примера рассмотрим инициализацию события onShowed, поддерживаемого элементом управления:
export class SuperControlParams extends BaseControlParams { (1)
@apiEvent onShowed?: BasicApiEvent<IEventArgs>;
}
1 | Класс параметров с объявлением события onShowed . |
Для инициализации события onShowed
, нужно добавить в конструктор класса реализации следующий код:
this.state.onShowed = SimpleEvent.Create<IEventArgs>(this.state.wrapper);
Событие onShowed
является непрерываемым (имеет тип BasicApiEvent
). Для прерываемого события, инициализация будет выглядеть следующим образом:
this.state.onShowing = CancelableEvent.Create<IEventArgs>(this.state.wrapper);
Таким образом конструктор класса реализации может выглядеть так:
construct() {
super.construct();
this.state.onShowed = SimpleEvent.Create<IEventArgs>(this.state.wrapper);
this.state.onShowing = CancelableEvent.Create<IEventArgs>(this.state.wrapper);
}
Связать обработчики с контекстом
Связывание обработчика с контекстом выполняется в конструктор класса реализации, что демонстрируется в следующем коде, в котором выполняется связывание с контекстом обработчика события onClick
.
construct() {
super.construct();
this.clickHandler = this.clickHandler.bind(this); (1)
}
1 | Метод clickHandler является внутренним обработчиком события onClick . |