• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Select2返回TypeError:数据未定义

JavaScript 来源:DaniG2k 3次浏览

我试图让Select2使用Rails。我有API端点工作,但我的控制台中收到一条TypeError: data is undefined消息,所以选择字段没有被填充。Select2返回TypeError:数据未定义

我的代码如下所示:

$(document).ready(function() { 
    return $('#form_emails').select2({ 
    placeholder: 'User list', 
    minimumInputLength: 3, 
    ajax: { 
     url: '/api/s/users', 
     dataType: 'json', 
     quietMillis: 250, 
     data: function(term) { 
     return { q: term }; 
     }, 
     results: function(data) { 
     var results; 
     results = []; 
     $.each(data, function(idx, item) { 
      results.push({ 
      'id': item.id, 
      'text': item.first_name + ' ' + item.last_name 
      }); 
     }); 
     return { results: results }; 
     } 
    } 
    }); 
}); 

任何想法,为什么我可能会得到上述错误?提前致谢!


===========解决方案如下:

根据Select2文档,可以从Ajax请求转换数据的函数名为processResults,而不是results

参见:https://select2.org/data-sources/ajax#transforming-response-data

所以正确的代码应该是:

$(document).ready(function() { 
    return $('#form_emails').select2({ 
    placeholder: 'User list', 
    minimumInputLength: 3, 
    ajax: { 
     url: '/api/s/users', 
     dataType: 'json', 
     quietMillis: 250, 
     data: function(term) { 
     return { q: term }; 
     }, 
     processResults: function(data) { 
     var results; 
     results = []; 
     $.each(data, function(idx, item) { 
      results.push({ 
      'id': item.id, 
      'text': item.first_name + ' ' + item.last_name 
      }); 
     }); 
     return { results: results }; 
     } 
    } 
    }); 
}); 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)