Select2无限滚动,没有限制结果

时间:2013-07-23 11:11:30

标签: jquery-select2

我正在使用selct2,我正在使用ajax加载一些数据。结果不限,但我必须做无限滚动。一些想法?

我有像这样的json

{"len":30,"data":[{"value":"223118","type":1,"name":"Peter","language":3},
{"value":"223118","type":1,"name":"John","language":2},
{"value":"223118","type":2,"name":"Mike","language":1},
{"value":"223118","type":1,"name":"George","language":3}
....
]}

我正在使用标准的select2功能进行ajac加载:

$( selector ).select2({
        placeholder: "Search",
        minimumInputLength: 1,
        id: function(bond){return {id: bond._id};},
        ajax: {
            //url: $("#area-of-operating_0").attr('data-url'),
            url: 'myurl',
            dataType: 'json',
            quietMillis: 100,
            data: function (term, page) {
                return {
                     page_limit: 10, // page size
                    page: page // page number
                    //q: term
                };
            },

            results: function (data, page) {
                var more = (page * 10) < data.total;
                return {results: data.data, more: more}
            }
        },

        formatResult: selectFormatResult, // see example
        formatSelection: selectFormatSelection
})

问题是json可以包含1000个元素。我想用10个元素进行无限滚动

1 个答案:

答案 0 :(得分:1)

仅使用demo

中提到的select2无法做到这一点
  

为了使远程服务必须支持某种分页机制......

如果服务器端不支持分页,则无法启用无限滚动。

您可以做的是在第一次请求时将整个JSON保存在某个JS变量中。然后,当用户向下滚动时,您可以从局部变量中顺序获取更多结果。这是你的选择吗?