2013-03-26 7 views
12

Nel mio HTML ho questa linea:Impossibile selezionare elemento in lista creato da ui-select2

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

e la funzione 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; 
    } 
}; 

Tutto funziona bene quando ho messo 3 lettere filtra il risultato e lo mostra corretto ma non posso fare clic e selezionare qualsiasi elemento dall'elenco dei risultati. Qualcuno può aiutarmi in questa faccenda? Non entra nemmeno nella funzione formatSelection.

+1

Puoi allegare 'privChanged()' definizione di funzione alla domanda. – Stewie

+0

sì, l'ho allegato. il problema era altro. Post in risposta – biesczadka

risposta

21

il problema era che la classe/tabella Priv non aveva la proprietà id e la sua chiave primaria era codice di campo. Ho dovuto aggiungere funzioni:

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

in $scope.privNameSelect2options

+2

Puoi darmi un esempio completo. Ho anche questo problema. – iroel

+0

Basta aggiungere questa funzione a $ scope.privNameSelect2options e invece di 'code' inserisci un nome di un campo che è identificativo nella tua entità. – biesczadka

1

Anche se questo non è realmente specificato nella documentazione Select2, è necessario passare una chiave id con un valore di funzione per Select2.

$scope.privsSelect2options = { 
    id: function(element) { return element.name; } 
    ... 
}; 
Problemi correlati