我正在使用 tokeninput 插件(http://loopj.com/jquery-tokeninput/demo.html)来自动完成多个标签,并且它在New
表单上工作得很好。
现在我想在编辑表单中预先填充相同的内容;这是我遇到困难的地方。我创建了一个文件,它以 json 格式(id 和 name)返回值。如果我从服务器日志中复制这些结果并将其放入 tokeninput 插件的 prePopulate 选项中,它就可以正常工作。
但是当我这样做时
prePopulate: k.getJSON("tag_list_pre")
wheretag_list_pre
是以 json 格式返回所选标签的操作。如果我提醒
alert(getJSON("tag_list_pre"));
它返回[object Object]
并且不预先填充任何内容。
我认为问题出在某些地方,当我的文件返回 json 格式数据时,在视图的这一侧,它没有得到预期的结果。
在这个问题中提出了类似的问题,但尚未回答https://stackoverflow.com/q/5892326/489018
更新: 我现在使用与http://railscasts.com/episodes/258-token-fields?view=asciicast相同的方法 我正在使用 data-pre 来获取令牌所需的 json 格式 id 和名称字符串-输入。
样本输出是
[{"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 是 id 和名称格式的数组 @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"
});
现在我的问题是它没有预先填充任何内容。其他一切都很好。
谢谢。如果您需要更多信息,请与我们联系。