11

在我的 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功能。

4

3 回答 3

20

问题是Priv类/表没有 id 属性,其主键是字段代码。我必须添加功能:

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

$scope.privNameSelect2options

于 2013-03-29T12:05:53.143 回答
7

请参考Select2 Ajax Method Not Selecting ,

并取正确的值:

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

或者

id: function(data){return data.id}
于 2014-03-19T14:03:22.373 回答
1

尽管在 select2 文档中并未真正指定,但您需要将带有函数值的 id 键传递给 select2。

$scope.privsSelect2options = {
    id: function(element) { return element.name; }
    ...
}; 
于 2014-02-26T23:10:12.943 回答