2013-03-26 36 views
12

在我的HTML我這一行:不能選擇通過用戶界面,選擇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 2013-03-26 15:10:07

+0

是的,我附上了它。問題是別的。我發佈在回答 – biesczadka 2013-03-29 12:03:22

回答

21

問題是Priv class/table沒有id屬性,並且它的主鍵是字段代碼。我不得不添加功能:

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

$scope.privNameSelect2options

+2

你能給我一個完整的例子。我也有這個問題。 – iroel 2013-12-04 07:04:47

+0

只需將此函數添加到$ scope.privNameSelect2options中,而不是「代碼」將字段名稱作爲實體中的標識符。 – biesczadka 2013-12-09 14:00:01

1

雖然這不是真正的選擇2文件中規定,你需要傳遞一個ID密鑰與函數值來選擇2。

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