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

Select2Ajaxメソッドが選択されていないを参照してください。

正しい値を取ります:

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 に答える