Eine Lösung finden Sie hier:
%Vor%Bearbeiten:
Ich könnte Ihre Frage falsch interpretiert haben. Wenn Sie alle Daten einmal laden möchten, verwenden Sie Select2, es gibt keine eingebaute Funktionalität dafür.
Ihr Vorschlag, eine einzelne Abfrage auszuführen und dann die gespeicherten Daten in Select2 zu verwenden, wäre der richtige Weg.
Um Daten einmal zu laden:
Annahmen:
Sie haben einen REST-API-Endpunkt unter / services, der ein JSON-Array mit Objekten bedient
Das Array enthält Objekte, die mindestens ein "name" - und ein "id" -Attribut haben. Beispiel:
%Vor%Sie möchten dieses Array als globales 'services_raw'
Zuerst laden wir die Daten und erstellen das globale 'services_raw' (AKA 'window.services_raw'):
%Vor%Zweitens, unser Select2 Instanziierungscode, der unsere Daten in ein Format umwandelt, mit dem Select2 arbeiten kann:
%Vor%Hier sehen Sie, wie das Select2-Element in HTML vor dem Aufruf aussehen sollte:
%Vor%Um all dies zu verwenden, rufen Sie (in JS) auf:
%Vor%Schließlich ist hier ein JSFiddle, wo Sie mit einer ähnlichen Sache spielen können: Ссылка
Im obigen Beispiel verwenden wir einfach Ajax, um das Äquivalent von window.pills in der Fiddle zu füllen.
Hoffe das hilft:)
Bitte antworten Sie, wenn Sie wissen, wie Sie dies über die Funktion Select2 .ajax tun, da dies etwas kürzer wäre.
Dies ist für Select2 v4.0.3:
Ich hatte die gleiche Frage und habe es durch Auslösen eines AJAX-Aufrufs und Verwenden der als initialisiertes Datenfeld zurückgegebenen Daten verstanden.
%Vor%Dies funktionierte gut für das, was ich vorhatte. Hoffe, das hilft Leuten, die mit derselben Frage suchen.
Tags und Links javascript jquery-plugins web