无法选择ui-select2创建的列表中的项目

时间:2013-03-26 14:09:54

标签: javascript html angularjs angular-ui jquery-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函数。

3 个答案:

答案 0 :(得分:21)

问题是Priv class / table没有id属性,其主键是字段代码。我不得不添加功能:

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

中的

答案 1 :(得分:8)

请参阅Select2 Ajax Method Not Selecting

并采取正确的值:

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

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

答案 2 :(得分:1)

虽然在select2文档中没有真正指定,但您需要将带有函数值的id键传递给select2。

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