Javascript 选择2-无限滚动不加载带有远程数据的下一页
我使用的是Javascript 选择2-无限滚动不加载带有远程数据的下一页,javascript,ajax,jquery-select2-4,Javascript,Ajax,Jquery Select2 4,我使用的是Select2 4.0.1,我使用ajax根据用户输入填充结果,但每当我搜索任何内容Select2时,都会列出第一页结果,但没有加载连续页面,也会请求滚动第二页。似乎我错过了什么 $multiselect = $(element).select2({ closeOnSelect: false, multiple: true, placeholder: 'Assign a new tag', tags: true, tokenSeparators:
Select2 4.0.1
,我使用ajax根据用户输入填充结果,但每当我搜索任何内容Select2
时,都会列出第一页结果,但没有加载连续页面,也会请求滚动第二页。似乎我错过了什么
$multiselect = $(element).select2({
closeOnSelect: false,
multiple: true,
placeholder: 'Assign a new tag',
tags: true,
tokenSeparators: [","],
ajax: {
url: '/search_url',
dataType: 'json',
type: 'GET',
delay: 250,
data: function(params) {
return {
search: params.term,
page: params.page
};
},
processResults: function(data, params) {
var more, new_data;
params.page = params.page || 1;
more = {
more: (params.page * 20) < data.total_count
};
new_data = [];
data.items.forEach(function(i, item) {
new_data.push({
id: i.name,
text: i.name
});
});
return {
pagination: more,
results: new_data
};
},
cache: true
}
})
$multiselect=$(元素)。选择2({
closeOnSelect:false,
多重:对,
占位符:“分配新标记”,
标签:是的,
令牌分隔符:[“,”],
阿贾克斯:{
url:“/search_url”,
数据类型:“json”,
键入:“GET”,
延误:250,
数据:函数(参数){
返回{
搜索:params.term,
页码:params.page
};
},
processResults:函数(数据、参数){
var more,新的_数据;
params.page=params.page | | 1;
更多={
更多:(params.page*20)
非常感谢您的帮助。Thnx:)这是我上周得到的代码。我使用的是另一种交通工具,但这不会有什么区别。我和你有同样的问题,滚动时没有分页工作。我的问题是我的
processResults
函数中没有正确的{'pagination':{'more':true}}
格式。我能看到的唯一对您有效的方法是在data
函数与processResults
函数中“修复”页面计数
当您滚动到列表底部时,是否看到“加载更多结果…”标签?调试时是否尝试将more
值硬编码为true
this.$(".select2").select2({
'ajax': {
'transport': function (params, success, failure) {
var page = (params.data && params.data.page) || 1;
app.do('entity:list:search',{'types':['locations'],'branch':branch,'limit':100,'page':page,'term':params.data.term})
.done(function(locations) {
success({'results':locations,'more':(locations.length>=100)});
});
}
, 'delay': 250
, 'data':function (params) {
var query = {
'term': params.term
, 'page': params.page || 1
};
return query;
}
, 'processResults': function (data) {
return {
'results': data.results
, 'pagination': {
'more': data.more
}
};
}
}
, 'templateResult': that.formatResult
, 'templateSelection': that.formatSelection
, 'escapeMarkup': function(m) { return m; }
});
你的控制台里有什么东西吗?尝试使用
debug:true
初始化Select2,查看是否显示任何警告。