2016-07-24 24 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(data、function(users))が間違っていることを意味しますか? – adam78

答えて

1

私は正しかったです。私はjQuery.map()を正しく使用していませんでした。次のようになります。

results: $.map(data.users, function (users) { 
       return { 
        text: users.Text, 
        id: users.Value 
       } 
      }), 
関連する問題