我使用令牌输入插件(http://loopj.com/jquery-tokeninput/demo.html)进行多个标记自动完成,它在New格式中工作得很好。
现在,我想在编辑形式上使用同样的prePopulate;这是我遇到困难的地方。我创建了一个文件,它以json格式返回值(id和name)。如果我从服务器日志中复制这些结果,并将其放入令牌输入插件的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
更新:我现在使用的方法与在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"
});,现在我的问题是它没有预先填充任何东西。其他的一切都很好。
谢谢。如果你需要更多的信息,请告诉我。
发布于 2014-07-15 13:32:00
很晚了,但我发现了确切的问题。错误出现在对标签的调用中。
text_field_tag(name, value = nil, options = {})如您所见,第二个param是text_field的值,第三个是options param。您需要将nil传递为value,以便将data-pre传递为option。
<%= text_field_tag :project_tags, nil, "data-pre" => @list1.to_json %>如果不传递任何value,它将以data-pre作为text_field的值
https://stackoverflow.com/questions/8655110
复制相似问题