Легко-автозаполнение проблемы реализации: JavaScript не выполняется и JSON не обрабатывается - PullRequest
0 голосов
/ 09 ноября 2019

Я новый разработчик Ruby on Rails, работающий над приложением, использующим плагин easy-Autocomplete. Я следовал за учебником на нем и не могу заставить его работать полностью. Javascript не выполняется автоматически, и при ручном вызове полученный JSON не обрабатывается.

Javascript, который использует введенные данные и вызывает обращение к серверу, работает. И контроллер выполняет поиск и создает объект JSON.

Но JSON, кажется, никогда не возвращается в браузер, поскольку в поле никогда не отображается раскрывающийся список с возвращенными данными. (На стороне сервера я проверил, что генерируются правильные данные).

Другая проблема заключается в том, что javascript в файле Assets никогда не выполняется. Я получаю javascript для выполнения на поле, только если вручную ввожу его в консоль Chrome Devtools. Как только это введено, серверный вызов отключается. Но, опять же, полученный JSON не отображается в раскрывающемся списке с полем.

Плагин easy-Autocomplete и таблицы стилей работают нормально при использовании простого javascript в браузере (пять цветов и ввод любых букв в поле приводят к правильному отображению и выбору из массива данных).

#  The Javascript:

document.addEventListener("turbolinks:load", function() {
  $input = $("[id='basics']")

  var options = {
    getValue: "name",
    url: function(phrase) {
      return "/search.json?q=" + phrase;
    },
    categories: [
      {
        listlocation: "users",
        header: "Users",
      }
    ]
  };

  $input.easyAutocomplete(options);
});

#  The controller action:

  def search
    @users = User.ransack(email_cont: params[:q]).result(distinct: true).limit(5)

    respond_to do |format|
      format.html {}
      format.json {
        @users = @users.limit(3)
      }
    end
  end

1 Ответ

0 голосов
/ 13 ноября 2019

Я получил его на работу в новом чистом приложении. Требуются некоторые модификации json builder, но javascript выполняется и в итоге выдает результат. В учебнике, которому я следовал, был неправильный код JSON Builder для javascript

...