2015-02-12 31 views
15

Angularjs projetcimde normal seçim açılır menüsünü kullanıyorum ve mükemmel çalışıp ng-change işlevini kullanarak bir işlev çağrısı yapıyorum. Şimdi aynı açılır menüyü ui-select'e taşımak istiyorum. Ama seçili fonksiyon çağrısı çalışmıyor, farklı yollar denedim ama şans yok. Aşağıdaki plnkrAngularjs açılır-seç tuşu açılır-seç fonksiyonu çağrısı sorunu

Birlikte çalıştığımız iki yolu vardır benim bulabilirsiniz ui-select:

<ui-select ng-model="uiSelectedCustomer" theme="select2" on-select="getDataBasedonCustomer(uiSelectedCustomer)" style="min-width: 300px;"> 
    <ui-select-match placeholder="Select a customer..">{{$select.selected.name}}</ui-select-match> 
    <ui-select-choices repeat="cust in customers | filter: $select.search"> 
     <div ng-bind-html="cust.name | highlight: $select.search"></div> 
    </ui-select-choices> 
</ui-select> 


<ui-select ng-model="uiSelectedCustomer" theme="select2" on-select="getDataBasedonCustomer(uiSelectedCustomer)" style="min-width: 300px;"> 
    <match placeholder="Select a customer in the list or search his name ">{{$select.selected.name}}</match> 
    <choices repeat="cust in customers | filter: $select.search"> 
     <div ng-bind-html="cust.name | highlight: $select.search"></div> 
    </choices> 
</ui-select> 

cevap

41

, öğeyi eğer seçilip seçime göre bir şeyler almak istediğiniz kod anladığımız nedir yani ? o zaman bu

sizin ui-select ve denetleyiciye içinde on-select="onSelected($item)" ekle bkz: `$ item` argüman olarak geçti ve işlevinde kullanılmıştır sürece

$scope.onSelected = function (selectedItem) { 
    //do selectedItem.PropertyName like selectedItem.Name or selectedItem.Key 
    //whatever property your list has. 
} 
+2

Benim için geri çağırma işlevi herhangi bir değişiklik olmaz. Bunun nedeni, 'select-select' geri çağrısının _before_ 'ng-model' denenmesidir. – maurice

+1

Bu, çoklu seçim için çalışıyor, ancak normal seçim durumunda, $ select.selected parametresiyle on-select işlevini çağırmak zorunda kaldım. –