Перейти к основному содержимому

api.on()

Описание

Позволяет прикрепить обработчик к внутренним событиям

Использование

api.on(
event: string,
handler: function,
config?: { intercept?: boolean, tag?: number | string | symbol }
): void;

Параметры

  • event - (обязательный) событие, которое необходимо отслеживать
  • handler - (обязательный) прикрепляемый обработчик (аргументы обработчика зависят от вызываемого события)
  • config - (необязательный) объект со следующими параметрами:
    • intercept - (необязательный) если при создании слушателя событий задать intercept: true, этот слушатель будет выполняться раньше всех остальных
    • tag - (необязательный) тег действия. Имя тега можно использовать для удаления обработчика действия через метод detach

События

информация

Полный список внутренних событий Pivot можно найти здесь. Используйте метод api.on(), если хотите прослушивать действия без их изменения. Чтобы вносить изменения в действия, применяйте метод api.intercept().

Пример

В примере ниже показано, как вывести метку поля, для которого был активирован фильтр:

// создание Pivot
const table = new pivot.Pivot("#root", {
fields,
data: dataset,
config: {
rows: ["studio", "genre"],
columns: [],
values: [
{
field: "title",
method: "count"
},
{
field: "score",
method: "max"
}
]
}
});

table.api.on("open-filter", (ev) => {
if (ev.id) {
const { config } = table.api.getState();
const fieldObj = config[ev.area].find((f) => f.id === ev.id);
if (fieldObj) {
console.log("The field for which filter was activated:", fieldObj.label);
}
}
}, {tag: "open-filter-tag"});