2015-06-12 11 views
9

Ben çalışır bir ajax çağrı ile twitter typeahead (typeahead.js 0.11.1) eklenti kullanıyorum, ama ajax sonuçlarının sayısı sınırdan daha az olduğunda bazı garip davranışlar verir (varsayılan sınır, typeahead çağrısında belirtmediğim 5'tir). İşte ben bunu kurdunuz nasıl:twitter typeahead ajax sonuçları gösterilmiyor hepsi

bana soruna neden
var limit = 6; 

populate_typeahead = function() { 
    $('.typeahead').typeahead('destroy'); 
    $('.typeahead').typeahead({ 
     hint: true, 
     highlight: true, 
     minLength: 1 
    }, 
    { 
     source: ajaxquery, 
    }); 
}; 

var ajaxquery = function(query, syncresults, process) { 
     return $.ajax({ 
      url: $(this)[0].$el.closest('span.twitter-typeahead').find('input:last').data('mahiFindByPath'), 
      type: 'get', 
      data: {search_string: query, limit: limit}, 
      dataType: 'json', 
      success: function(json) { 
       return typeof json.options == 'undefined' ? false : process(json.options); 
      } 
     }); 
    }; 

fiili örnek, yazarak "yeni için" Aşağıdaki json.options döndüren giriş kutusuna:

[ 
    'new to add to g1', 
    'new to be in grp1 then remove from grp', 
    'new to drag', 
    'new to assign' 
] 

Ancak, 4'ünün de göstermesi gereken tek öneri, 'g1'e eklenecek yeni'. 'New to d' yazmaya devam edersem 'yeni sürükle' önerisi gelir. Eğer sadece 'yeni' yazıyorsam, yukarıdakilerin çoğunu da içeren tam 5 öneride bulunuyorum!

var limit = 5; değiştirirseniz, ajax çağrısı yalnızca en fazla 5 sonuç döndürür ve 'new to d' olana kadar 'öneri listesi' hiç öneride bulunmaz. Bu bana, ajax sonuçlarının adress sınırına eşit veya daha az olması ile ilgili olduğunu düşünmemi sağladı. Teorimi test etmek için 5 anlamsız öğeyi json.options dizisine itdim, böylece her zaman 5'ten fazla sonuç vardı ve hepsi beklendiği gibi çalıştı - sadece listemin alt kısmında her zaman anlamsız önerilere sahip olmak istemiyorum. Herhangi bir tavsiye büyük takdir!

cevap

21

Benzer bir sorunla karşılaştım. Tipeahead'in 0.11.1 versiyonundaki bir hataya benziyor. Çözümü burada deneyin: https://github.com/twitter/typeahead.js/pull/1212 ve bunun işe yarayıp yaramadığını görün. agustaf tavsiyesine uyarak https://github.com/per-nilsson/typeahead.js/commit/387290b1e70be0052c6dd9be84069f55d54a7ce7

+0

Evet eklemek! –

+0

wow, benim için çalışıyor, teşekkürler – danisupr4

+0

Merhaba. Ben Tipeahead 0.11.1 sürümü ile aynı sorunu yaşıyorum düşünüyorum. Ajax çağrısından dönen tüm sonuçlar öneri listesinde gösterilmez. Verdiğiniz bağlantı artık işe yaramıyor. Bu sorun için nerede bir düzeltme bulabilirim? Teşekkürler. – Doug

0

:

spesifik değişiklik budur. twitter-typeahead rayları gem kullanıyorum. Ben bir çatal oluşturdum ve bu hata benim için aynı veya ilgili olabilir hangi düzeltmek için 1.0.1 çarptı. Benim durumumda uzak kaynaktan iki sonuç aldım, ancak ikisinden sadece biri öneri için kullanıldı.

Bir çekme isteği yaptım - ancak birleştirilip birleştirilmeyeceğinden emin değilim. Ancak gelecekteki raylar için bunu görebilen kullanıcılar çatalımı ve özellikle de i kolumu kullanırlar.

it thanks çözüldü sizin gemfile

gem 'twitter-typeahead-rails', :git => "git://github.com/pitops/twitter-typeahead-rails.git" , :branch => "bump_version_to_1.0.1"