У меня есть маркер ввода JQuery реализован для целей мечения, где пользователь может выполнять поиск тега или создать новый благодаря Railscasts ep#382 & ep#258. Данные поступают из URL-адреса tags.json
, который является указательным действием контроллера тэгов. Данные из tags.json выглядит так:Анализировать JSON массив хэшей в JQuery tokenInput
[
{
"created_at":"2013-06-21T16:30:19Z",
"explanation":"hitting the hosel of the club",
"id":8,
"name":"shank",
"updated_at":"2013-06-21T16:30:19Z",
"updated_by":"andy"
},
{
"created_at":"2013-06-22T17:40:37Z",
"explanation":"hitting the ground before the ball",
"id":12,
"name":"chunk",
"updated_at":"2013-06-22T17:40:37Z",
"updated_by":"andy"
}
]
Мои теги имеют имя, а также объяснения, так что я хотел бы включить их в списке результатов, таких как Токен и результаты форматирования демо здесь http://loopj.com/jquery-tokeninput/demo.html#formatting.
Код ниже (количество записей опущено для краткости) из jQuery tokenInput Токен и форматирование результатов demo.
Вместо того, чтобы вводить здесь «имя»: «Шэнк», а также другие пропущенные записи, как я могу извлечь имя и объяснение из тэга tags.json и использовать их в том же виде, что и строка форматирования результатов , например item.name & item.explanation?
tags.js
jQuery(function() {
var question = $('#question_tag_tokens')
return question.tokenInput([{
"name": "Shank",
"explanation": "hitting the hosel of the club"
}
], {
propertyToSearch: ["name"],
resultsFormatter: function(item){ return "<li>" + "<div class='tag' style='display:inline;color:#fff;'>" + item.name + "</div>" + " " + item.explanation + "</li>" },
prePopulate: question.data('preload')
});
});
Вы спрашиваете, как загрузить этот json из рельсов в javascript? Пример показывает, что вы передадите весь массив в ваш вызов 'tokenInput'. –
oh ok, его гораздо проще, чем я думал, вы можете получить доступ к item.explanation из входных токенов ('tags.json') PUt, что в ответ @joeshmo и плохо с радостью принимаем. – dodgerogers747