我使用tokeninput多个标签自动完成插件(http://loopj.com/jquery-tokeninput/demo.html),它是在New
形式的工作就好了。jQuery的+ Rails的3 + TokenInput插件+预填充
现在我想在编辑表单中填入相同的内容;这是我遇到困难的地方。我创建了一个以json格式(id和name)返回值的文件。如果我从服务器日志中复制这些结果并将其放入tokeninput插件的prePopulate选项,它就可以工作。
但是当我做这样的
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 我使用的数据预并获得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和name格式的数组@@ 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"
});
现在我的问题是,它是预先填充什么。其他一切正常。
谢谢。如果您需要更多信息,请与我们联系。
价值看一看我的[回答类似的问题(http://stackoverflow.com/问题/ 8656284/example-for-using-jquery-auto-complete-plugin-with-rails/8656721#8656721),尤其是使用配方的底部如何在Rails3中使用带有JQuery的令牌输入 - – mliebelt 2011-12-28 15:00:11
嗨@milebelt感谢你的答复,但我也尝试过,我无法弄清楚为什么这不起作用。所以我试过这个选项。 由于该选项的作用相同。返回JSON文件。我的编辑表单非常复杂,它带来了来自6-8个不同模型的数据。另外我不确定如何使用.map(&:attributes).to_json。如果你可以提供更多关于.map函数的细节,那将会很棒。谢谢。 – Kashyap 2011-12-29 04:37:22
@mliebelt我已经添加了您在其他问题中提到的代码,并且在下面打印了该代码,并且获得了以下结果。 [{“created_at”:“2011-12-28T12:26:30 + 05:30”,“id”:10,“project_master_id”:7,“tag_master_id”:5,“updated_at”:“2011-12- 28T12:26:30 + 05:30 “},{” created_at “:” 2011-12-28T12:26:30 + 05:30" , “ID”:11 “project_master_id”:7, “tag_master_id”:8 ,“updated_at”:“2011-12-28T12:26:30 + 05:30”}] 尽管所需的json格式为 [{“id”:“5”,“name”:“payment-processing” },{“id”:“8”,“name”:“asd”}] – Kashyap 2011-12-29 07:35:06