2

Я пытаюсь добавить жемчужину twitter-typeahead к моему приложению, и я следую этому руководству: http://blog.sed.hu/2014/07/11/ruby-on-rails-search-autocomplete-with-sunspot-solr-and-twitter-typeahead-js-part-2/. Я получаю несколько разных ошибок. Кто-нибудь, кто использовал Typeahead, видит что-то невероятно неправильное в учебнике? Или я делаю что-то неправильно?«синтаксические ошибки жука« twitter-typeahead »


Вот что я сделал:


application.html.erb

<div id="search-wrapper"> 
    <input class="typeahead" type="text" placeholder="Search"> 
</div> 

приложение/активы/JavaScripts/search.js.coffee

$(document).on 'ready page:load', -&gt; 
    users = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote: { 
     url: '/users/index?q=%QUERY' 
    } 
    }) 

    users.initialize() 

    $('input.typeahead').typeahead(
    { 
     hint: true, 
     highlight: true, 
     minLength: 1 
    }, 
    { 
     name: 'things', 
     displayKey: 'title', 
     source: User.all 
    }) 

Контроллеры/users_controller.rb

def index 
    if params[:search] 
    @user = User.search(params[:search]).order("created_at DESC") 
    respond_to do |format| 
     format.json do 
     results = @user.results.map do |user| 
      { title: user.name } 
     end 
     render json: results 
     end 
    else 
    @user = User.order("created_at DESC") 
    end 
end 

ОШИБКИ:


Обе ошибки указывают на этой линии в моей голове:

<%= javascript_include_tag "application", "data-turbolinks-track" => true %> 

, и если я удалю его, ошибки исчезнут, но это, очевидно, не предпочтительное решение.

Первая ошибка:

SyntaxError: [stdin]: unexpected & 
    (in home/website/app/assets/javascripts/search.js.coffee) 

Тогда, если я удалить "&" от "- >" на первой линии search.js.coffee, я получаю эту ошибку:

Вторая ошибка:

SyntaxError: [stdin]:2:1: unexpected indentation 
    (in home/website/app/assets/javascripts/search.js.coffee) 

Я играл с некоторыми O f отступ, но эта ошибка я не мог уйти.


UPDATE: Я изменил свой search.js.coffee код согласно предложению NickM, но теперь я получаю другую ошибку.


Обновлено search.js.coffee

$(document).on 'ready page:load', 
    users = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote: { 
     url: '/users/index?q=%QUERY' 
    } 
    }) 

    users.initialize() 

    $('input.typeahead').typeahead(
    { 
     hint: true, 
     highlight: true, 
     minLength: 1 
    }, 
    { 
     name: 'things', 
    displayKey: 'title', 
    source: User.all 
    } 
) 

Новая ошибка

SyntaxError: [stdin]:6:11: unexpected (
    (in /home/website/app/assets/javascripts/search.js.coffee) 

ответ

1

Try вставляя это в ваш CoffeeScript файл.Похоже, там было несколько забавных персонажей есть и непревзойденный Выступ:

$(document).on 'ready page:load', -> 
    users = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote: { 
     url: '/users/index?q=%QUERY' 
    } 
    }) 

    users.initialize() 

    $('input.typeahead').typeahead(
    { 
     hint: true, 
     highlight: true, 
     minLength: 1 
    }, 
    { 
     name: 'things', 
    displayKey: 'title', 
    source: User.all 
    } 
) 

Кроме того, вы можете найти инструмент js2coffee полезный, который можно найти here.

Если вы вставляете содержимое файла Coffeescript в правой панели, оно покажет вам, есть ли у вас синтаксические ошибки или появляются забавные символы. Я использую это все время. Надеюсь, поможет.

+0

Теперь я получаю другое «непредвиденное» сообщение об ошибке. Обновленный мой вопрос. –

+0

Возможно, вам придется добавить -> после запятой в первой строке, чтобы сделать его функцией. заботиться об этом, я бы посмотрел на текстовый редактор, который вы используете. Возможно, это неверно переводит пробелы или вкладки и вызывает ошибку с отступом. См. мое правление о js2coffee. –

1

Есть много других замечательных учебников. Может быть, вы бы больше удачи, с некоторыми из них:

http://www.arungudelli.com/jquery/simple-jquery-autocomplete-search-tutorial/ http://blattchat.com/2013/01/09/bootstrap-typeahead/ http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-typeahead.php https://twitter.github.io/typeahead.js/examples/ http://www.bootply.com/86571

Поиск Google будет производить еще больше.

Смежные вопросы