【问题标题】:How do you loop through a ruby variable in a Haml javascript tag?如何在 Haml javascript 标记中循环遍历 ruby​​ 变量?
【发布时间】:2011-09-16 18:57:05
【问题描述】:

如何循环遍历 Haml javascript 标记中的 ruby​​ 变量?我有一组需要循环浏览的@reviews。如何在 javascript 标记中循环访问此集合?

  - content_for :javascript do

      = javascript_include_tag "jquery.expander"
        :javascript
        - @reviews.each do |review|
         $("#share#{review.id}").live('click', function() {
            FB.ui(
              {
                method: 'feed',
                name: '#{@product.name}',
                link: '#{@product.page_url(@locale)}',
                picture: '#{@product.image_url(@locale)}',
                caption: 'Dell Social Shop',
                description: '#{@product.description}'
              },
              function(response) {
                if (response && response.post_id) {
                  alert('Post was published.');
                } else {
                  alert('Post was not published.');
                }
              }
            );
          });}

【问题讨论】:

标签: javascript ruby loops haml


【解决方案1】:

尝试将- @reviews.each do |review| 部分放在= javascript_include_tag "jquey.expander" 块之外,而不是在其中。它现在所在的位置可能被解释为 javascript 而不是 Ruby,因为它在 :javascript 行下缩进。

【讨论】:

    【解决方案2】:

    我发现对于 Javascript 代码,Erb 模板比 Haml 模板效果更好。所以我会将循环体提取到 .erb 部分中,然后执行类似的操作

    = javascript_include_tag "jquery.expander"
    = javascript_tag render(:partial => 'review.js.erb', :collection => @reviews)
    

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 2018-05-26
      • 2014-03-16
      • 2014-11-28
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多