Select2返回TypeError:数据未定义

问题描述 投票:1回答:1

我正在尝试让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 };
      }
    }
  });
});

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

javascript ruby-on-rails jquery-select2
1个回答
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 };
      }
    }
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.