Laden von remote-Daten nur einmal mit Select2
Wie der Titel schon sagt würde ich gerne zum laden von remote-Daten nur einmal.
Ich dachte über das laden der Daten mit unabhängigen ajax-call und legen Sie es "vor Ort" bei der Kontrolle, aber Frage mich, ob es mehr "eingebaute" Möglichkeit, dies zu tun...
- Ich glaube nicht, dass es irgendeine eingebaute option in
select2
was gibt Ihnen die Flexibilität, die einzige Weise, es zu tun wäre, um die Kontrolle der ajax-Aufruf abhängig, ob es schon genannt wurde, früher oder nicht.dieses controlling sollte iminitselection:
von select2
Du musst angemeldet sein, um einen Kommentar abzugeben.
eine Lösung kann hier gefunden werden:
https://github.com/ivaynberg/select2/issues/110
Edit:
Vielleicht habe ich deine Frage falsch interpretiert. wenn Sie möchten, laden Sie alle Daten nur einmal, dann Gebrauch, Select2, es gibt keine eingebaute Funktionalität zu tun.
Ihren Vorschlag, um eine einzelne Abfrage, und verwenden Sie dann die gespeicherten Daten in Select2 wäre der Weg zu gehen.
Daten laden einmal:
Annahmen:
Haben Sie eine REST-API-Endpunkt at /services, in dem Ihnen ein JSON-array von Objekten
Enthält das array Objekte, die mindestens über ein "name" und "id" - Attribut. Beispiel:
Die Sie speichern möchten, dass array als Globale 'services_raw'
Zunächst unsere Funktion zum laden der Daten und das erstellen der globalen 'services_raw' (AKA 'Fenster.services_raw'):
Zweite, unser Select2 Instanziierung code und setzt unsere Daten in ein format, dass Select2 kann mit der Arbeit:
Hier ist, was das Select2-element in HTML Aussehen sollten vor Ihrem Anruf die oben genannten Funktionen:
Zu benutzen all diese, nennen (JS):
Schließlich, hier ist ein JSFiddle, wo Sie spielen können, mit einem ähnlichen Ding: http://jsfiddle.net/RVnfn/102/
Im Grunde, in meinem Beispiel oben, wir sind nur mit ajax füllen Sie das äquivalent von Fenster.Pillen in der Geige.
Hoffe, das hilft 🙂
Bitte Antworten Sie, wenn Sie wissen, wie Sie über den Select2 .ajax-Funktion, denn das wäre ein wenig kürzer.
Dies ist für Select2 v4.0.3:
Ich hatte die gleiche Frage und bekam, um es durch das auslösen einer AJAX-Aufruf und die Verwendung der Daten zurückgegeben, als der initialisierte Daten-array.
Dies funktionierte gut für das, was ich im Sinn hatte. Hoffe, das hilft Menschen auf der Suche mit der gleichen Frage.