2017-12-18 222 views
1

我試圖讓Select2使用Rails。我有API端點工作,但我的控制檯中收到一條TypeError: data is undefined消息,所以選擇字段沒有被填充。Select2返回TypeError:數據未定義

我的代碼如下所示:

$(document).ready(function() { 
    return $('#form_emails').select2({ 
    placeholder: 'User list', 
    minimumInputLength: 3, 
    ajax: { 
     url: '/api/s/users', 
     dataType: 'json', 
     quietMillis: 250, 
     data: function(term) { 
     return { q: term }; 
     }, 
     results: function(data) { 
     var results; 
     results = []; 
     $.each(data, function(idx, item) { 
      results.push({ 
      'id': item.id, 
      'text': item.first_name + ' ' + item.last_name 
      }); 
     }); 
     return { results: results }; 
     } 
    } 
    }); 
}); 

任何想法,爲什麼我可能會得到上述錯誤?提前致謝!

+2

嘗試使用'processResults:功能(數據){',而不是'結果:功能(數據){'。 –

回答

1

根據Select2文檔,可以從Ajax請求轉換數據的函數名爲processResults,而不是results

參見:https://select2.org/data-sources/ajax#transforming-response-data

所以正確的代碼應該是:

$(document).ready(function() { 
    return $('#form_emails').select2({ 
    placeholder: 'User list', 
    minimumInputLength: 3, 
    ajax: { 
     url: '/api/s/users', 
     dataType: 'json', 
     quietMillis: 250, 
     data: function(term) { 
     return { q: term }; 
     }, 
     processResults: function(data) { 
     var results; 
     results = []; 
     $.each(data, function(idx, item) { 
      results.push({ 
      'id': item.id, 
      'text': item.first_name + ' ' + item.last_name 
      }); 
     }); 
     return { results: results }; 
     } 
    } 
    }); 
}); 
+0

謝謝,這與一些編輯工作! – DaniG2k