2016-07-24 35 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 
       } 
      }),