Jquery + Rails 3 + плагин TokenInput + PrePopulate - PullRequest
0 голосов
/ 28 декабря 2011

Я использую плагин tokeninput (http://loopj.com/jquery-tokeninput/demo.html) для автозаполнения нескольких тегов, и он отлично работает в New форме.

Теперь я хочу предварительно заполнить то же самое в форме редактирования; Вот где я испытываю трудности. Я создал один файл, который возвращает значения в формате JSON (идентификатор и имя). И если я скопирую эти результаты из журнала сервера и добавлю его в prePopulate для плагина tokeninput, он будет работать нормально.

Но когда мне это нравится

prePopulate: k.getJSON("tag_list_pre")

где tag_list_pre - это действие, которое возвращает выбранные теги в формате json. Если я предупрежу

alert(getJSON("tag_list_pre"));

возвращает [object Object] и ничего не заполняет.

Я думаю, что проблема заключается в том, что когда мой файл возвращает данные в формате json и с этой стороны в представлении он не получает желаемых результатов.

Аналогичная проблема задана в этом вопросе, но еще не получена https://stackoverflow.com/q/5892326/489018

UPDATE: Я сейчас использую тот же метод, что и в http://railscasts.com/episodes/258-token-fields?view=asciicast Я использую data-pre для получения идентификатора формата json и строки имени, как того требует ввод токена.

Пример вывода:

[{"id":"5","name":"payment-processing"},{"id":"8","name":"asd"},{"id":"15","name":"java"}]

Теперь мой текстовый тег HTML выглядит примерно так.

<%= text_field_tag :project_tags, "data-pre" => @list1.to_json %>

, где list1 - это массив в формате идентификатора и имени. Пример вывода @ list1 выглядит следующим образом.

[{:id=>"5", :name=>"payment-processing"}, {:id=>"8", :name=>"asd"}, {:id=>"15", :name=>"java"}] 

и новый tokenInput выглядит так:

  k("#project_tags").tokenInput("tag_list", {
  prePopulate: k("#project_tags", k(this)).data("pre"),
  hintText: "Enter Tags for your Project",
  noResultsText: "No Such Tags",
  searchingText: "Looking for your Tags",
  preventDuplicates: true,
  theme: "facebook"
 });

Теперь моя проблема в том, что она ничего не заполняет. Все остальное работает просто отлично.

Спасибо. Дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

0 голосов
/ 15 июля 2014

Уже поздно, но я столкнулся с точной проблемой.Ошибка в вызове text_field_tag ​​.

text_field_tag(name, value = nil, options = {})

Как видите, второй параметр - это значение для text_field, а третий - options.Вам нужно передать nil как value, чтобы data-pre было передано как option.

<%= text_field_tag :project_tags, nil, "data-pre" => @list1.to_json %>

Если вы не передадите value, для data-pre будетзначение для text_field

...