我正在使用Select2进行自动完成,我正在从远程加载列表。
看看下面的代码:
HTML:
<div>
<select class="tagsSearch" style="width: 100%">
<option value="2" selected="selected"></option>
</select>
</div>
jQuery的:
<script type="text/javascript">
$(".tagsSearch").select2({
placeholder: 'Search for tags',
tags: true,
multiple: true,
tokenSeparators: [',', ' '],
minimumInputLength: 2,
minimumResultsForSearch: 1,
ajax: {
url: function (params) {
return '/api/searchTags?text=' + params.term;
},
dataType: "json",
type: "GET",
processResults: function (data) {
return {
results: $.map(data, function (name) {
return {
name: name,
}
})
};
}
}
});
</script>
问题:当使用params对URL进行网络调用并且结果又回来时,它没有显示在我的下拉列表中。
实际的API响应(我从浏览器网络日志中看到:
[{"name":"bottomline-technologies"}]
这就是前端的样子:
因此API响应正常。我在这里做错了什么?
提前致谢
答案 0 :(得分:1)
由于JohnS在this帖子上指出了一些内容,这是固定的。
问题是processResults应该返回 id 和 text 变量。根据我的最终解决方案,你只需要映射它们:
StringDeduplicationAgeThreshold
PS:这还包括清理代码,但问题在于缺少变量。