gpt4 book ai didi

javascript - Select2 - 无限滚动不加载带有远程数据的下一页

转载 作者:行者123 更新时间:2023-11-29 18:01:37 25 4
gpt4 key购买 nike

我正在使用 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
}
})

非常感谢任何帮助。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; }
});

关于javascript - Select2 - 无限滚动不加载带有远程数据的下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com