2015-02-03 17 views
1

У меня был Twitter Typeahead.js, встроенный в приложение Rails в течение некоторого времени и работающий нормально.Почему typeahead.js/bloodhound возвращает «Не могу прочитать свойство« пробелы »неопределенного»

После серии обновлений gem и перемещения некоторых зависимостей к Bower, теперь я вижу ошибку в консоли, а Typeahead.js неправильно вызывается.

Uncaught TypeError: Cannot read property 'whitespace' of undefined

на

queryTokenizer: Bloodhound.tokenizers.whitespace

Что это значит, и как я отладки это?

Мой полный код:

jQuery -> 
    if $('.country-typeahead').length 
    countries = new Bloodhound(
     prefetch: 
     url: "../api/countries.json" 
     datumTokenizer: (datum) -> 
     Bloodhound.tokenizers.whitespace datum.name 
     queryTokenizer: Bloodhound.tokenizers.whitespace 
    ) 

    countries.initialize() 

    $('.country-typeahead').typeahead null, 
     name: "countries" 
     displayKey: "name" 
     source: countries.ttAdapter() 

JSON выглядит следующим образом

[{"id":1,"name":"Aruba"},{"id":2,"name":"Afghanistan":""},{.....etc}] 

ответ

0

Вы, возможно, понял это уже, но так как у меня был тот же вопрос, я думал, что после моего решения ,

не используйте пакет ищейки в Bower и удаляйте любые ссылки на эту библиотеку. Вам нужен только typeahead.js, так как он включает ищейку.

0

включают typeahead.bunde.js вместо typeahead.js, проблема в том, что недостающие зависимости .bundle содержит все необходимые зависимости