2013-02-06 9 views
5

Folgende Daten werden an select2 über Angular UI: (Live example here)Angular UI select2 - Wie wird die automatische Sortierung gestoppt?

JS:

$scope.items = [ 
    {id: 1, text: 'elephant'}, 
    {id: 2, text: 'desk'}, 
    {id: 3, text: 'car'}, 
    {id: 4, text: 'boat'}, 
    {id: 5, text: 'apple'} 
]; 
$scope.selected = []; 

HTML:

<select ui-select2 
     multiple 
     ng-model="selected" 
     data-placeholder="Please select..." 
     style="width:200px"> 
    <option></option> 
    <option ng-repeat="item in items" value="{{item.id}}">{{item.text}}</option> 
</select> 

jedoch Element jedes Mal ausgewählt wird, es sortiert die ausgewählten Elemente von id. Zum Beispiel, wenn Sie "Apfel" und dann "Boot" wählen, sind die selected Artikel "Boot" und "Apfel" (in dieser Reihenfolge!).

Wie kann ich die Bestellung beibehalten und diese automatische Sortierung deaktivieren?

+0

Tritt dies mit Vanille JS in Select2 oder NUR mit AngularUI auf? – ProLoser

+0

Ich bin mir überhaupt nicht sicher, warum das passiert. Können Sie ein Ticket für das Projekt öffnen? – ProLoser

+0

@ProLoser: https://github.com/angular-ui/angular-ui/issues/406 –

Antwort

-1

Sieht aus wie es den Auftrag erhält, wenn Sie ng-options verwenden anstelle eines ng-repeat für jedes der Elemente wie gesehen here tun

Alles, was Sie tun müssen, ist diese Zeile löschen:

<option ng-repeat="item in items" value="{{item.id}}">{{item.text}}</option> 

Und dann Fügen Sie eine solche Anweisung zu Ihrem Tag hinzu:

Dies wird es so machen, dass das gesamte Objekt Objekt bekommt An die ausgewählte Liste angehängt, anstatt nur an die ID, also müssen Sie dies berücksichtigen.

+0

'ui-select2' ist nicht kompatibel mit' ng-optionen' und erzeugt ungewöhnliche Verhaltensweisen. – ProLoser

Verwandte Themen