在我的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
函数。
答案 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; }
...
};