Я хотел бы использовать Select2 для поля выбора, заполненного запросом ajay к API с одним вызовом API.Нет необходимости снова запрашивать API после каждого нажатия клавиши.
Я пытался реализовать его, используя этот поток: Как предварительно загрузить массив через ajax и использовать его для select2? , ноЯ все еще не могу заставить его работать в нерабочее время -.-
Мой код:
<script type="text/javascript">
$(document).ready(function() {
var linkableSystems = [];
$.ajax({
url: 'ulrHere'
}).done(function(data) {
linkableSystems = data.results;
console.log(linkableSystems);
$('#SelectLinkedSystemToAdd').select2('enable', true);
});
$('#SelectLinkedSystemToAdd').select2({
dataType: 'json',
data: function () { return { results: linkableSystems }; }
},
console.log(linkableSystems)
).select2('enable', false);
});
</script>
<select id="SelectLinkedSystemToAdd" class="form-control"></select>
API возвращает:
{
"results": [
{
"text": "demo CLIENT 1",
"id": 1
},
{
"text": "demo CLIENT 2",
"id": 2
}
]
}
Я попытался заполнить поле выбора с помощью вызова ajax select2, и оно работает.Но я не могу заставить его работать так, чтобы он делал только 1 единственный вызов API.Согласно консоли, linkableSystems
сначала пусто:
[]
length: 0
, а затем заполняется запросом ajax:
(2) […]
0: Object { text: "demo CLIENT 1", id: 1 }
1: Object { text: "demo CLIENT 2", id: 2 }
К сожалению, эти изменения не воспринимаются Select2 какпредложено в теме, которую я связал выше.
Может кто-нибудь, пожалуйста, помогите мне с этим?Если вам нужна дополнительная информация, пожалуйста, спросите!
Спасибо!