2013-02-06 13 views
5

Aşağıdaki veri Angular UI aracılığıyla select2 bağlıdır: (Live example here)Açısal UI select2 - Otomatik sıralama nasıl durdurulur?

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> 

Ancak öğe seçildiğinde her zaman, seçili öğeleri sıralar id. Örneğin, "elma" ve sonra "tekne" yı seçerseniz, selected ürünü "tekne" ve "elma" olacaktır (bu sırayla!).

Siparişi nasıl koruyabilir ve bu otomatik sıralama özelliğini nasıl kapatabilirim?

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

Ve sonra: görmüş here

gibi öğelerin her biri için bir ng-repeat yapmak yerine ng-options kullanırsak düzeni korur gibi

+0

Bu, Select2'deki vanilla JS ile veya SADECE AngularUI ile gerçekleşir mi? – ProLoser

+0

Bunun neden oluştuğundan emin değilim. Projede bir bilet açabilir misin? – ProLoser

+0

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

cevap

-1

yapmanız gereken tek şey bu satırı silin olduğunu görünüyor Etiketinize benzer bir yönergeye ekleyin:

ng-options="item.text for item in items" 

Sadece ID yerine seçilen listeye eklenir, dolayısıyla bunu hesaba katmanız gerekecektir.

+0

'ui-select2'' ng-options' ile uyumsuzdur ve olağandışı davranışlar yaratacaktır. – ProLoser