2016-07-24 67 views
0

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

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" 
     } 
    ] 
} 
+0

预期的结果是什么? – guest271314

+0

搜索结果似乎不会显示在选择列表中以供选择。 – adam78

+0

这意味着json错误或$ .map(数据,函数(用户)是错误的? – adam78

回答

1

我是正确的。我没有正确使用jQuery.map()。它应该如下:

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