2013-03-26 2 views
12

В моем HTML У меня есть эта строка:Невозможно выбрать пункт в списке созданного Ui-выбор2

<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.

+1

Вы можете прикрепить 'privChanged()' определение функции на вопрос. – Stewie

+0

Да, я приложил его. проблема была еще одна. Я отправляю в ответ – biesczadka

ответ

21

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

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

в $scope.privNameSelect2options

+2

Можете ли вы дать мне полный пример. У меня тоже есть эта проблема. – iroel

+0

Просто добавьте эту функцию в $ scope.privNameSelect2options, а вместо «code» введите имя поля, которое является идентификатором в вашей сущности. – biesczadka

1

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

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

Пожалуйста, обратитесь к Select2 Ajax Method Not Selecting,

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

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

или

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