跳至主要内容

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