2016-12-07 4 views
0

Я использую Rails для создания своего приложения, но javascript для реализации поиска. Это то, что у меня есть для автозаполнения Algolia. Я нахожусь на бесплатном («Хакер») плане с Algolia, и я хочу добавить нижний колонтитул. Есть простой способ сделать это? То, что у меня ниже (которое я нашел по адресу: https://github.com/algolia/autocomplete.js/blob/master/README.md), не работает.Algolia добавить нижний колонтитул в javascript autocomplete результаты поиска dropdown

var client = algoliasearch("<%= ENV['ALGOLIA_API'] %>", "<%= ENV['ALGOLIA_SECRET'] %>"); 
var index = client.initIndex('User'); 

//initialize autocomplete on search input (ID selector must match) 
autocomplete('#aa-search-input', 
{ hint: false }, [{ 
    source: autocomplete.sources.hits(index, {hitsPerPage: 5}), 
    //value to be displayed in input control after user's suggestion selection 
    displayKey: function(suggestion) { return suggestion.first_name + " " + suggestion.last_name}, 
    //hash of templates used when rendering dataset 
templates: { 
     //'suggestion' templating function used to render a single suggestion 
     suggestion: function(suggestion) { 
      var link = "<form action='<%= ENV['HOST'] %>users/" + suggestion.id + "/friend_requests' method='post' id='addfriend' style='color: lightgreen'> <input name='authenticity_token' value='<%= form_authenticity_token %>' type='hidden'> <button type='submit' name='user_id' value='" + suggestion.id + "' class='btn-link'>Add</button></form>"; 
      var card = "<span>" + "<img src=<%= ENV['CLOUDINARY_SECOND_URL'] %>" + suggestion.photo.path + " alt='' class='avatar'> " + 
      suggestion._highlightResult.first_name.value + " " + suggestion._highlightResult.last_name.value + "</span><span>" + link +"</span>"; 

      return card 

     } 
    } 
    footer: '<span class="branding">Powered by <img src="https://www.algolia.com/assets/algolia128x40.png" /></span>' 
}]).on('autocomplete:selected', function(event, suggestion, dataset) { 
    var url = "<%= ENV['HOST'] %>users/"; 
    window.location.assign(url + suggestion.id)}); 
+0

«Не работает», я предполагаю, что вы имеете в виду: «нижний колонтитул не отображается»? – evadeflow

ответ

0

Вам нужно положить footer внутри templates объекта. Как что:

templates: { 
    //'suggestion' templating function used to render a single suggestion 
    suggestion: function(suggestion) { 
     var link = "<form action='<%= ENV['HOST'] %>users/" + suggestion.id + "/friend_requests' method='post' id='addfriend' style='color: lightgreen'> <input name='authenticity_token' value='<%= form_authenticity_token %>' type='hidden'> <button type='submit' name='user_id' value='" + suggestion.id + "' class='btn-link'>Add</button></form>"; 
     var card = "<span>" + "<img src=<%= ENV['CLOUDINARY_SECOND_URL'] %>" + suggestion.photo.path + " alt='' class='avatar'> " + 
     suggestion._highlightResult.first_name.value + " " + suggestion._highlightResult.last_name.value + "</span><span>" + link +"</span>"; 

     return card 

    }, 
    footer: '<span class="branding">Powered by <img src="https://www.algolia.com/assets/algolia128x40.png" /></span>' 
} 

Прямо сейчас у вас есть снаружи, поэтому он не принимает footer шаблон во внимание.

+0

большое спасибо - это исправлено (но не видно с сафари, просто хром) – julianne