주요 콘텐츠로 건너뛰기

add-field

설명

행, 열 또는 값 영역에 새 필드가 추가될 때 발생합니다

사용법

"add-field": ({
id?: string | number,
area: string,
field: string | number,
method?: string
}) => boolean;

매개변수

이 액션의 callback은 다음 매개변수를 포함하는 객체를 받습니다:

  • id - (선택) 새 필드의 원하는 id; 설정하지 않으면 자동 생성된 id가 추가됩니다
  • area - (필수) 새 필드가 추가되는 영역의 이름으로, "rows", "columns" 또는 "values" 중 하나입니다
  • field - (필수) 필드의 이름
  • method - (선택) 데이터 집계 방법을 정의합니다 (지정하지 않으면 해당 데이터 유형에 적합한 첫 번째 방법이 설정됩니다); 다음 중 하나를 사용할 수 있습니다:
    • values 영역에서는 필수이며, 데이터 연산 유형 중 하나를 나타내는 문자열입니다: 기본 메서드
    • rowscolumns 영역에서는 선택 사항이며, 값이 설정된 경우 predicate입니다; 커스텀 predicate이거나 기본값 중 하나인 "year", "quarter", "month", "week", "day", "hour", "minute"를 사용할 수 있습니다. 기본적으로 원시 값이 설정됩니다. 커스텀 predicate이나 method가 설정된 경우, predicates 또는 methods 속성에 id를 지정해야 합니다.
정보

내부 이벤트를 처리하려면 Event Bus 메서드를 사용할 수 있습니다

예제

아래 예제에서는 api.intercept() 메서드를 사용하여 number 데이터 유형의 값 필드에 새 메서드를 추가합니다:

const table = new pivot.Pivot("#root", {
fields,
data: dataset,
config: {
rows: ["studio", "genre"],
columns: [],
values: [
{
field: "title",
method: "count"
},
{
field: "score",
method: "max"
}
]
}
});
//미리 정의된 method로 values 추가
table.api.intercept("add-field", (ev) => {
const { fields } = table.api.getState();
const type = fields.find((f) => f.id == ev.field).type;

if (ev.area == "values" && type == "number") {
ev.method = "min";
}
});

관련 문서: api.intercept()