我正在尝试让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 };
}
}
});
});
知道为什么我可能会收到上述错误吗?提前致谢!
根据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 };
}
}
});
});