2013-03-26 15 views
12

W moim HTML Mam ten wiersz:Nie można wybrać pozycję z listy stworzonej przez UI-Select2

<input ng-change="privChanged()" ng-model="selectedPriv" ui-select2="privsSelect2options"></input> 

i funkcję privsSelect2options:

$scope.privsSelect2options = { 
    placeholder: "Wybierz privo", 
    allowClear:true, 
    minimumInputLength: function(){return 3;}, 
    formatInputTooShort: function (input, min) {return "Wprowadź conajmniej " + min + " znaki.";}, 
    formatSearching: function() { return "Wyszukiwanie..."; }, 
    formatNoMatches: function() { return "Nie znaleziono pasujących województw."; }, 
    query: function (query) { 
     query.callback({results: $filter('filter')($scope.privs,{name: query.term}) }); 
    }, 
    formatResult: function(priv){ 
     return priv.name; 
    }, 
    formatSelection: function(priv){ 
     return priv.name; 
    } 
}; 

Wszystko działa OK, gdy kładę 3 litery filtruje wynik i pokazuje go poprawnie, ale nie mogę kliknąć i wybrać dowolnego elementu z listy wyników. Czy ktoś może mi pomóc w tej sprawie? Nie wchodzi nawet w funkcję formatSelection.

+1

można dołączyć 'privChanged()' definicję funkcji do pytania. – Stewie

+0

tak, załączyłem to. problemem było coś jeszcze. Wpisuję w odpowiedzi – biesczadka

Odpowiedz

21

Problem polegał na tym, że klasa/tabela Priv nie miała właściwości id, a kluczem podstawowym był kod pola. Musiałem dodać funkcję:

id : function(priv) { 
     return priv.code; 
    }, 

w $scope.privNameSelect2options

+2

Czy możesz podać mi pełny przykład. Mam też ten problem. – iroel

+0

Po prostu dodaj tę funkcję do $ scope.privNameSelect2options i zamiast "code" wpisz nazwę pola będącego identyfikatorem w twojej encji. – biesczadka

1

Chociaż nie jest to określone w dokumentacji select2, musisz zdać klucz id o wartości funkcji celu select2.

$scope.privsSelect2options = { 
    id: function(element) { return element.name; } 
    ... 
}; 
Powiązane problemy