Опция «Все результаты» для легкого автозаполнения поиска Ruby on Rails - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь добавить опцию «Все результаты» в выпадающий поиск.Я ограничил свой поиск 5 записями:

# search_controller.rb
def search
  @catalogs = Catalog.ransack(name_cont: params[:q]).result(distinct: true)
  @products = Product.ransack(name_cont: params[:q]).result(distinct: true)

  respond_to do |format|
    format.html {}
    format.json {
      @catalogs = @catalogs.limit(5)
      @products = @products.limit(5)
    }
  end
end

И теперь я хочу добавить дополнительную опцию, если есть более 5 результатов (неважно, каталоги это или продукты, просто дополнительная опция поверх всехРезультаты).Вот моя easy-autocomplete настройка:

document.addEventListener("DOMContentLoaded", function() {
  $input = $("[data-behavior='autocomplete']");

  var options = {
    getValue: "name",
    url: function(phrase) {
      return "/search.json?q=" + phrase;
    },
    categories: [
      { listLocation: "catalogs", header: "<strong>Catalogs</strong>" },
      { listLocation: "products", header: "<strong>Products</strong>" }
    ],
    list: {
      onChooseEvent: function() {
        var url = $input.getSelectedItemData().url;
        console.log(url);
        $input.val("");
        window.location.href = url;
      }
    }
  };

  $input.easyAutocomplete(options);
});

Я пытался гуглить, потому что это кажется очень очевидным, но я ничего не нашел.Прочитайте всю документацию easy-autocomplete, но проблема все еще остается.Спасибо за вашу помощь и время!

ОБНОВЛЕНИЕ

Прочитайте easy-autocomplete документацию еще раз и обнаружите onLoadEvent в Events.Упрощенное решение:

document.addEventListener("DOMContentLoaded", function() {
  // code ...
      onLoadEvent: function() {
        $('.easy-autocomplete-container ul').append("<li>Show all</li>");
      }
  // code ...
  };

  $input.easyAutocomplete(options);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...