2015-04-26 5 views
1

Я использовал twitter bootstrap typeahead js для одного из моих проектов. Я настроил его для своих нужд, и все работает нормально около месяца. Теперь, внезапно, мой код не работает, и я недавно не обновлял какой-либо код. Я совершенно смущен. Следующий мой код.Twitter typeahead query not working

var colleges = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote : { 
     url : url + '/autocomplete?query=%QUERY', 
     ajax : { 
      beforeSend: function(jqXhr, settings){ 
       $('.search-button').find('.fa').removeClass('fa-search').addClass('fa-refresh'); 
      }, 
      complete : function(){ 
       $('.search-button').find('.fa').removeClass('fa-refresh').addClass('fa-search');  
      } 
     } 
    } 
}); 
colleges.initialize(); 

$('#colleges').typeahead({ 
    hint: true, 
    highlight: true, 
    minLength: 1 
}, 
{ 
    name: 'colleges', 
    displayKey: 'name', 
    slug : 'slug', 
    source: colleges.ttAdapter() 
}); 

$('#colleges').bind('typeahead:selected', function(obj, datum, name) {  
    window.location = url +'/'+ datum.slug; 
}); 

$('.form').submit(function(e){ 
    if($('#colleges').val().length < 2){ 
     e.preventDefault(); 
    } 
}); 

При вводе ничего не передается для параметра запроса. URL-адрес выглядит как www.example.com/autocomplete?query=%QUERY вместо фактического запроса, который пользователь вводит. Я тоже не ошибаюсь в консоли.

Любое предложение?

+0

пожалуйста, вы можете создать образец на http://jsfidde.net? – Dhiraj

ответ

2

У меня была та же проблема. Кажется, они сделали новую версию. Насколько я понимаю, полная перепись. Так что вам нужно добавить одну строку и все должно работать:

var colleges = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote : { 
     url : url + '/autocomplete?query=%QUERY', 
     wildcard: '%QUERY',** 
     ajax : { 
      beforeSend: function(jqXhr, settings){ 
      $('.search-button').find('.fa').removeClass('fa-search').addClass('fa-refresh'); 
      }, 
      complete : function(){ 
       $('.search-button').find('.fa').removeClass('fa-refresh').addClass('fa-search');  
      } 
     } 
    } 
}); 

Добавить wildcard: '%QUERY', в свой код в ищейка и все должны делать хорошо