2013-07-24 33 views
5

Tôi muốn hỏi làm thế nào tôi có thể thêm thông số bổ sung cho cuộc gọi AJAX được thực hiện bởi tùy chọn remote. Tôi đã theo hình thức đơn giản để tìm kiếm các bằng cấp (đó là trong Coffeescript):Thêm dữ liệu bổ sung cho cuộc gọi ajax của tùy chọn từ xa typeahead.js

$('#search_qualification').typeahead 
    name: 'qualification' 
    limit: 50 
    remote: 
    url: "/search/qualification?term=%QUERY" 

tôi muốn gửi param khác với các cuộc gọi AJAX, đó là state, bình thường với jQuery AJAX cuộc gọi, tôi muốn làm điều này :

$.ajax 
    url: "/search/qualification" 
    dataType: "json" 
    data: 
    term: request.term 
    state: $("#state").val() 

Tôi hoàn toàn không biết gì khi thích ứng với typeahead.js này, ai đó có thể giúp tôi ở đây không? Rất cám ơn

Trả lời

17

Sử dụng replace tùy chọn:

$('#search_qualification').typeahead({ 
    name: 'qualification' 
    limit: 50 
    remote: { 
    url: '/search/qualification?term=%QUERY&state=%STATE' 
    replace: function(url, query) { 
     var state = encodeURIComponent($('#state').val()); 

     return url.replace('%QUERY', query).replace('%STATE', state); 
    } 
    } 
}); 
+0

Bất kỳ nhược điểm trong không sử dụng 'replace' và chỉ cần sửa đổi 'url' để chứa bất kỳ thông số thêm ví dụ '/ search/qualification? term =% QUERY & state = '+ encodeURIComponent ($ (' # state '). val());' – Medorator

Các vấn đề liên quan