Подтвердить что ты не робот

Невозможно выбрать элемент в списке, созданный с помощью ui-select2

В моем HTML у меня есть эта строка:

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

и 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;
    }
}; 

Все работает нормально, когда я помещаю 3 буквы, они фильтруют результат и показывают его правильность, но я не могу щелкнуть и выбрать любой элемент из списка результатов. Может ли кто-нибудь помочь мне в этом вопросе? Он даже не входит в функцию formatSelection.

4b9b3361

Ответ 1

проблема заключалась в том, что Priv class/table не имеет свойства id, а его Первичный ключ - код поля. Мне пришлось добавить функцию:

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

in $scope.privNameSelect2options

Ответ 2

Обратитесь к Select2 Ajax Method Not Selecting,

и возьмите правильное значение:

id: function(data){return {id: data.id};},

или

id: function(data){return data.id}

Ответ 3

Хотя это не указано в документации select2, вам нужно передать ключ id со значением функции для выбора2.

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