2

我有下一个选择2:

siteSelector = $('#siteSelector').select2(
{
   placeholder : "Select site ...",
   ajax : {
      type : 'GET',
      dataType : 'json',
      contentType : 'application/json',
      url : {url_of_my_rest_service},
      data : function(term, page) {
         return {
            startswith : term,
         };
      },
      results : function(data, page) {
         var items = data.content;
         var res = {
            results : []
         }, i;
         for (i = 0; i < items.length; i++) {
         res.results.push({
            id : items[i].id,
            text : items[i].name
         });
      }
      return res;
   }
},
minimumInputLength : 3
});

当我按下下拉按钮时,我怎样才能做到这一点,一些值已经被预加载在那里?

4

1 回答 1

0

最好的方法是在调用 ajax 之前将数据插入 DOM。

$(document).ready(function () {
//as many as you need, using loop or manually
$('#siteSelector').append("<option value='value1'>Value 1</option>")
//only then start select2 using the function you wrote
//siteSelector = $('#siteSelector').select2(......
})

据我所知, select2 中的 data 属性在 ajax 调用中效果不佳(或根本不适用)。这种方法会奏效。

于 2016-01-05T13:44:03.003 回答