select2不显示选项

问题描述

我正在使用select2库发送ajax请求:

搜索某些内容时,我正在获取数据,但是由于某种原因,结果没有显示在下拉列表中。

    $('.js-example-basic-single').select2({
    ajax: {
    url:"/search/search",type:"POST",data: function (params) {
        // Query parameters will be ?search=[term]&type=public
        var query = {
            search: params.term,type: 'public'
          }
        return query;
      },processResults: function (data) {
        // Transforms the top-level key of the response object from 'items' to 'results'
        data = JSON.parse(data)
        console.log(data)
        return {
            results: data.studentNumber
          };
      }
      // Additional AJAX parameters go here; see the end of this chapter for the full code of this example
    }
  });

这是我可以在控制台中看到的数据:

[
 {
   studentNumber :"12324"
 },{
   studentNumber :"12324"
 },]

这是文档的作用:

$('#mySelect2').select2({
  ajax: {
    url: '/example/api',processResults: function (data) {
      // Transforms the top-level key of the response object from 'items' to 'results'
      return {
        results: data.items
      };
    }
  }
});

解决方法

转换后收到的dataarray。调用data. studentNumber会产生不确定的,因为数据不是对象。

由于返回results总是应该是array,因此只需返回数据本身。

简而言之,更改此内容:

return {
    results: data. studentNumber
};

return {
    results: data
};