簡體   English   中英

select2 ajax不起作用

[英]select2 ajax not working

我正在與select2庫一起使用ajax進行下拉。 我不能使它工作。 這是我的代碼:

$("#guests").select2({
        multiple: true,
        minimumInputLength: 1,
        formatInputTooShort: function () {
            return "Enter 1 Character";
        },
        data: function() {
            return data;
        },
        ajax: {
            url: 'some url',
            dataType: 'json',
            processResults: function (data) {
                // parse the results into the format expected by Select2
                // since we are using custom formatting functions we do not need to
                // alter the remote JSON data, except to indicate that infinite
                // scrolling can be used

                return {
                    results: data.data,
                    pagination: {
                        more: 30
                    }
                }
            }
            /*,
            cache: true*/
        },
        escapeMarkup: function (markup) { return markup; },
        templateResult: formatRepo,
        templateSelection: formatRepoSelection
    })

    function formatRepo (results) {

        var markup = "<div class='select2-result-resultssitory clearfix'>" +
                "<div class='select2-result-resultssitory__avatar'><img src='" + results.id + "' /></div>" +
                "<div class='select2-result-resultssitory__meta'>" +
                "<div class='select2-result-resultssitory__title'>" + results.text + "</div>";

        if (results.description) {
            markup += "<div class='select2-result-resultssitory__description'>" + results.guest_first_name + "</div>";
        }

        markup += "<div class='select2-result-resultssitory__statistics'>" +
                "<div class='select2-result-resultssitory__forks'><i class='fa fa-flash'></i> " + results.guest_last_name + " Forks</div>" +
                "<div class='select2-result-resultssitory__stargazers'><i class='fa fa-star'></i> " + results.guest_do_b + " Stars</div>" +
                "<div class='select2-result-resultssitory__watchers'><i class='fa fa-eye'></i> " + results.text + " Watchers</div>" +
                "</div>" +
                "</div></div>";

        return markup;
    }

    function formatRepoSelection(results) {
        return results.text || results.guest_first_name;
    }

HTML:

<select id="guests" class="form-control input-guests " data-placeholder="Search guest..." multiple=""></select>

這是我從遠程URL獲取的JOSN數據:

[{
    "id": 1,
    "guest_first_name": "Jon",
    "guest_last_name": "Doe",
    "guest_do_b": "1954-07-13T00:00:00+0100",
    "text": "Jon Doe"
}, {
    "id": 2,
    "guest_first_name": "Janne",
    "guest_last_name": "Doe",
    "guest_do_b": "1960-01-14T00:00:00+0100",
    "text": "Janne Doe"
}]

有點晚了,但是您的錯誤是options.results未定義嗎?

在這種情況下,您可能需要將processResults函數重命名為results

我知道它在帶有processResults函數的文檔中,但是我遇到了同樣的問題, 本文為我提供了解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM