我试图让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 };
}
}
});
});
知道为什么我可能会收到上述错误吗?提前谢谢!
答案 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 };
}
}
});
});