在rails中使用JQCloud的一些问题

时间:2012-06-02 17:02:13

标签: javascript jquery ruby-on-rails

我想将哈希从我的控制器传递给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

3 个答案:

答案 0 :(得分:1)

jQCloud使用downcase属性。例如“text”,“link”,但不是“Text”,“Link”等。

答案 1 :(得分:1)

使用

var word_list =<%= raw @tag_cloud.to_json%>

以防止将引号转义为&quot;

答案 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>

......你应该看到云这个词。