Ich habe eine Label-Funktion wie:
%Vor% Was ich in einer Datensäule benutze, indem ich labelFunction
verwende.
Das funktioniert gut, wenn mein Datenfeld 'startDate' heißt. Ich möchte diese Funktion generisch machen, damit ich sie überall verwenden kann.
Wie kann ich das tun? Ich denke, ich muss eine Art "Reflexion" verwenden - oder vielleicht sogar einen anderen Ansatz?
Sie können eine andere Funktion definieren, nennen wir sie partial
, die einige zusätzliche Argumente an Ihre Funktion bindet:
Dann ändern Sie Ihre Funktion wie folgt:
%Vor% Beachten Sie, dass ich ein neues Argument mit dem Namen dataField
first in der Argumentliste hinzugefügt und alle Verweise auf "startDate" durch dieses Argument ersetzt habe.
Und benutze es so:
%Vor% Die partial
Funktion gibt eine neue Funktion zurück, die die ursprüngliche Funktion mit den Parametern vom Aufruf zu partiell verkettet mit den Parametern zur neuen Funktion aufruft ... Sie bei mir? Eine andere Möglichkeit, dies zu tun, ist, dass es eine neue Funktion zurückgeben kann, bei der N Argumente an bestimmte Werte gebunden sind.
Gehen wir Schritt für Schritt durch:
partial(formatDate, "startDate")
gibt eine Funktion zurück, die wie folgt aussieht:
aber die func
und boundArgs
sind das, was Sie als Argumente an partial
übergeben haben, also könnte es so aussehen:
was, wenn es aufgerufen wird, mehr oder weniger dasselbe wie das
ist %Vor%Tada!
Sie können die Funktion generisch machen, indem Sie das Attribut dataField der Spalte als Schlüssel für Ihr Element verwenden.
%Vor%-Ben
Tags und Links flex datagrid labelfunction