add-field
Beschreibung
Wird ausgelöst, wenn ein neues Feld zum Bereich Zeilen, Spalten oder Werte hinzugefügt wird
Verwendung
"add-field": ({
id?: string | number,
area: string,
field: string | number,
method?: string
}) => boolean;
Parameter
Der Callback der Aktion erhält ein Objekt mit den folgenden Parametern:
id- (optional) die gewünschte ID eines neuen Feldes; wenn sie nicht festgelegt ist, wird eine automatisch generierte ID vergebenarea- (erforderlich) der Name des Bereichs, dem ein neues Feld hinzugefügt wird; mögliche Werte sind "rows", "columns" oder "values"field- (erforderlich) der Name eines Feldesmethod- (optional) definiert eine Methode zur Datenaggregation (wenn nicht angegeben, wird die erste für diesen Datentyp geeignete Methode verwendet); eine Methode kann einer der folgenden sein:- Für den Bereich values ist sie erforderlich und gibt als Zeichenkette einen der Datenoperationstypen an: Standardmethoden
- Für die Bereiche rows und columns ist sie optional; wenn ein Wert festgelegt ist, handelt es sich um ein Prädikat. Es kann ein benutzerdefiniertes Prädikat oder eines der Standardwerte sein: "year", "quarter", "month", "week", "day", "hour", "minute". Standardmäßig wird der Rohwert verwendet. Wenn ein benutzerdefiniertes Prädikat oder eine benutzerdefinierte Methode festgelegt ist, muss die ID für die Eigenschaft predicates oder methods angegeben werden.
Info
Zur Behandlung interner Events können Sie die Event-Bus-Methoden verwenden.
Beispiel
Im folgenden Beispiel verwenden wir die Methode api.intercept(), um dem Wertefeld mit dem Datentyp number eine neue Methode hinzuzufügen:
const table = new pivot.Pivot("#root", {
fields,
data: dataset,
config: {
rows: ["studio", "genre"],
columns: [],
values: [
{
field: "title",
method: "count"
},
{
field: "score",
method: "max"
}
]
}
});
//Werte mit einer vordefinierten Methode hinzufügen
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";
}
});
Verwandte Artikel: api.intercept()