Select2返回TypeError:数据未定义

时间:2017-12-18 10:27:05

标签: javascript ruby-on-rails jquery-select2

我试图让Select2使用Rails。我的API端点正常工作,但我在控制台中收到TypeError: data is undefined消息,因此未填充选择字段。

我的代码如下所示:

$(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 };
      }
    }
  });
});

知道为什么我可能会收到上述错误吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

根据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 };
      }
    }
  });
});