Javascript 如果数据项不';t提供「;id";及;“文本”;域名?
我有一个select2下拉列表,配置为用于远程数据。但是,my remote datasource提供的搜索结果格式似乎与select2不兼容。例如,远程数据如下所示:Javascript 如果数据项不';t提供「;id";及;“文本”;域名?,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我有一个select2下拉列表,配置为用于远程数据。但是,my remote datasource提供的搜索结果格式似乎与select2不兼容。例如,远程数据如下所示: ... items: [ { value: 1, displayText: "First" }, { value: 2, displayText: "Second" } ] ... 但是select2似乎期望使用“id”和“text”字段。我已经检查了所有选项,并尝试使用formatSelection,formatResult
...
items: [ { value: 1, displayText: "First" }, { value: 2, displayText: "Second" } ]
...
但是select2似乎期望使用“id”和“text”字段。我已经检查了所有选项,并尝试使用formatSelection
,formatResult
回调,但直到现在都没有成功,我总是收到关于“item.text”未定义的javascript错误
我不能提供JSFIDLE,因为web API不是公共的
有没有办法配置select2以使用自定义的“id”和“文本”字段?或者,对于这种情况,还有什么好的解决方法呢?好的,在我发布问题后,我几乎马上就找到了答案。也许这不是最有效的方法,所以如果有人有更好的答案,我仍然很高兴 我设法在
ajax
选项中的results
回调中进行了转换
$("#mySelect").select2({
minimumInputLength: 3,
ajax: {
url: '/',
params: {
type: 'POST',
dataType: 'json',
},
quietMillis: 200,
data: function(term, page) { // page is the one-based page number tracked by Select2
return {
search: term,
pageSize: 10,
pageIndex: page-1,
};
},
results: function(data, page) {
var more = (page * 10) < data.Total; // whether or not there are more results available
return { results: $.map(data.Results, function(e, i) {
return { id: e.value, text: e.displayText, data: e };
}), more: more };
}
}
$(“#我的选择”)。选择2({
最小输入长度:3,
阿贾克斯:{
url:“/”,
参数:{
键入:“POST”,
数据类型:“json”,
},
安静百万:200,
数据:函数(术语,页码){//page是Select2跟踪的基于页码的函数
返回{
搜索:术语,
页面大小:10,
页面索引:第1页,
};
},
结果:功能(数据、页面){
var more=(第*10页)