jQuery.map() 解析 select2 ajax 调用的结果

Posted

技术标签:

【中文标题】jQuery.map() 解析 select2 ajax 调用的结果【英文标题】:jQuery.map() to Parse results from select2 ajax call 【发布时间】:2016-11-28 03:30:33 【问题描述】:

我有以下 select2 ajax 调用。如何使用 jquery $.map() 解析返回的 json 结果。我需要从用户数组中获取文本和值结果。从寻呼机数组中,我需要获取 TotalItemCount。我在下面的内容似乎不起作用,即搜索结果似乎没有显示在选择列表中。也没有显示控制台错误,所以我不确定我做错了什么。

var url = '@Url.Action("GetEmployees", "Employees")';
var pageSize = 20;

$(".js-data-example-ajax").select2(
    ajax: 
        url: url,
        dataType: 'json',
        delay: 250,
        data: function (params) 
            return 
                term: params.term, // search term
                page: params.page
            ;
        ,
        processResults: function (data, params) 
            params.page = params.page || 1;

            return 
                results:  $.map(data, function (users) 
                    return 
                        text: users.Text,
                        id: users.Value
                    
                ),
               pagination: 
                    more: (params.page * pageSize) < data.pager.TotalItemCount
                
            ;
        ,
        cache: true
    ,
    minimumInputLength: 2,
    placeholder: "-- Select --",
    allowClear: true
);

返回的json如下:

 
   "pager":
      "PageCount":1,
      "TotalItemCount":1,
      "PageNumber":1,
      "PageSize":20,
      "HasPreviousPage":false,
      "HasNextPage":false,
      "IsFirstPage":true,
      "IsLastPage":true,
      "FirstItemOnPage":1,
      "LastItemOnPage":1
   ,
   "users":[
      
         "Disabled":false,
         "Group":null,
         "Selected":false,
         "Text":"Joe Blogs",
         "Value":"97306aa4-d423-4770-9b45-87a701146b10"
      
   ]

【问题讨论】:

预期结果是什么? 搜索结果似乎没有显示在可供选择的选择列表中。 是json错误还是$.map(data, function (users)错误? 没试过select2,可以创建一个jsfiddlejsfiddle.net来演示吗? 【参考方案1】:

我是对的。我没有正确使用 jQuery.map()。应该是这样的:

 results:  $.map(data.users, function (users) 
                return 
                    text: users.Text,
                    id: users.Value
                
            ),

【讨论】:

以上是关于jQuery.map() 解析 select2 ajax 调用的结果的主要内容,如果未能解决你的问题,请参考以下文章

Select2 - Ajax 数据 - 根据查询填充下拉列表

Select2“TypeError:a未定义”错误

Rails 6.1.3,webpacler,select2,出现错误:readyException.js:6 Uncaught TypeError: $(...).select2 is not a f

jquery map和get方法理解?

让 Select2 Gem 与 A​​ctiveAdmin“添加新”按钮一起使用

如何将 select2 多选与 livewire 一起使用