我想将哈希从我的控制器传递给JS数组,但它可以工作。 这些是我做的: 在控制器中:
@tag_cloud = []
@tag_cloud[0] = {}
@tag_cloud[0]["text"]="Lorem"
@tag_cloud[0]["weight"]=15
.....
在视图中:
var word_list =<%=@tag_cloud.to_json%>
$(function() {
$("#my_tag_cloud").jQCloud(word_list);
});
我不明白为什么json无法加载到word_list
答案 0 :(得分:1)
jQCloud使用downcase属性。例如“text”,“link”,但不是“Text”,“Link”等。
答案 1 :(得分:1)
使用
var word_list =<%= raw @tag_cloud.to_json%>
以防止将引号转义为"
答案 2 :(得分:0)
因为我在其他地方找不到最小的工作轨道版本:
我假设您已关注installation instructions。
为了让JQCloud rails gem发挥其魔力,一种方便的格式是哈希数组。通常我们在模型中构建它以保持控制器的纤薄,但为了显示最小的演示,您可以将以下定义放入控制器操作中:
@tag_cloud = [
{ text: "test", weight: 15},
{ text: "Ipsum", weight: 9, link: "http://jquery.com/"},
{ text: "Dolor", weight: 6, html: {title: "I can haz any html attribute"}},
{ text: "Sit", weight: 7}, {text: "Amet", weight: 5}
]
现在,在相应的视图中,添加
<script type="text/javascript">
var word_array = <%= raw @tag_cloud.to_json %> ;
$(function() {
// When DOM is ready, select the container element and call
// the jQCloud method, passing the array of words as the first argument.
$("#example").jQCloud(word_array);
});
</script>
<div id="example" style="width: 550px; height: 350px;"></div>
......你应该看到云这个词。