select2远程数据json

时间:2016-05-28 04:41:07

标签: jquery json select2

我正在使用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

我这样做了吗?

1 个答案:

答案 0 :(得分:0)

问题是,term即将发挥作用是一个对象,这意味着您需要使用term.term来获取确切的字符串。

同时使用processResults代替results

&#13;
&#13;
$(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;
&#13;
&#13;