Javascript 如果数据项不';t提供「;id";及;“文本”;域名?

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

我有一个select2下拉列表,配置为用于远程数据。但是,my remote datasource提供的搜索结果格式似乎与select2不兼容。例如,远程数据如下所示:

...
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页)