我正在使用Select2,我设法对此进行编码。但是,我无法检索结果。
<script type="text/javascript">
$(document).ready(function() {
$(".js-data-example-ajax").select2({
ajax: {
url: 'https://api.github.com/search/repositories',
dataType: 'json',
quietMillis: 100,
data: function (term) {
return {
q: term
};
},
results: function (data) {
var myResults = [];
$.each(data, function (index, item) {
myResults.push({
'id': item.id,
'text': item.name
});
});
return {
results: myResults
};
}
}
});
});
</script>
例如,我输入s
请求将为https://api.github.com/search/repositories?q%5Bterm%5D=s
我这样做了吗?
答案 0 :(得分:0)
问题是,term
即将发挥作用是一个对象,这意味着您需要使用term.term
来获取确切的字符串。
同时使用processResults
代替results
。
$(document).ready(function() {
$(".js-data-example-ajax").select2({
ajax: {
url: 'https://api.github.com/search/repositories',
dataType: 'json',
quietMillis: 100,
data: function(term) {
return {
q: term.term
};
},
processResults: function(data) {
return {
results: $.map(data.items, function(item, index) {
return {
'id': item.id,
'text': item.name
};
})
};
}
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<select class="js-data-example-ajax">
<option>----select----</option>
</select>
&#13;