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

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"});