delete-field
Описание
Срабатывает при удалении поля
Использование
"delete-field": ({
area: string,
id: string | number
}) => boolean | void;
Параметры
Колбэк действия принимает объект со следующими параметрами:
area- (обязательный) название области, из которой удаляется поле; может быть областью "rows", "columns" или "values"id- (обязательный) идентификатор удаляемого поля
информация
Для обработки внутренних событий можно использовать методы Event Bus
Пример
В примере ниже действие delete-field вызывается через метод api.exec(). Последнее поле удаляется из области values. Метод api.getState() здесь используется для получения текущего состояния config Pivot. Действие будет вызвано по нажатию кнопки.
const table = new pivot.Pivot("#root", {
fields,
data,
config: {
rows: ["studio", "genre"],
columns: [],
values: [
{
field: "title",
method: "count"
},
{
field: "score",
method: "max"
}
]
}
});
//вызов методов API: удаление определённого значения из values в config
function removeLastField() {
if (table.api) {
const state = table.api.getState();
const config = state.config;
const count = config.values.length;
if (count) {
const lastValue = config.values[count - 1];
table.api.exec("delete-field", {
area: "values",
id: lastValue.id, // автоматически сгенерированный ID элемента, добавленного в config.values
});
}
}
}
const button = document.createElement("button");
button.addEventListener("click", removeLastField);
button.textContent = "Remove";
document.body.appendChild(button);