$(‘#mySelect’).select2({
ajax: {
url: ‘http://example.com/data’,
dataType: ‘json’,
delay: 250,
data: function (params) {
return {
q: params.term, // Search term
page: params.page // Page number
};
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: data.items, // Array of options
pagination: {
more: (params.page * 30) < data.total_count // Boolean indicating if more pages are available
}
};
},
cache: true
},
placeholder: ‘Search for an option’,
minimumInputLength: 3 // Minimum number of characters before a search is performed
});
data
q 参数表示搜索词,page 参数表示要检索的页码。
processResults
处理来自服务器的响应并返回一个对象,该对象包含要在下拉列表中显示的选项,以及一个指示是否有更多页面可用的布尔值。
results 属性包含一个选项数组,pagination.more 属性根据是否有更多页面的数据可用于检索来设置。
为检索到的每一页数据调用 processResults 函数,并且results 在检索时附加到下拉列表中。 这允许用户在加载更多数据时继续滚动下拉列表,而不必等待一次检索所有数据。