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