javascript - HAML JS 脚本中的内联变量

标签 javascript ruby-on-rails haml

所以我不久前为 erb 编写了这段代码

<% if @posting.pictures.blank? %>
<% else %>
    <script>
        $("#slider-posting").vegas({
            slides: [
                    <%- @posting.pictures.each do |p| %>
                        {src: '<%=p.url%>'},
                    <%- end %>
            ],
            transition: 'slideLeft'
        });
    </script>
<% end %>

我在将其转换为 HAML 时遇到了一些麻烦。

尝试基于 http://html2haml.herokuapp.com/ 进行转换

- if @posting.pictures.blank?
- else
  :javascript
    $("#slider-posting").vegas({
                slides: [
    <haml_silent>                    @posting.pictures.each do |p| 
    </haml_silent><haml_block>                      {src: '#{p.url}'},
    </haml_block>           ],
                transition: 'slideLeft'
            });

导致以下错误

nil:NilClass 的未定义方法 `url'

在这条线上

</haml_silent><haml_block>                        {src: '#{p.url}'},

最佳答案

试试这个

- if @posting.pictures.blank?
- else
  :javascript
    $("#slider-posting").vegas({
      slides: [
        #{
          @posting.pictures.map { |p| "{src: '#{p.url}'}"}.join(',')
        }
      ],
      transition: 'slideLeft'
    });

关于javascript - HAML JS 脚本中的内联变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35029999/

相关文章:

javascript - 如何在浏览器自动调整视频大小时返回视频大小

javascript - 平滑滚动到 div 相关

javascript - Google 跟踪代码管理器解析错误。主要表达

javascript - ajax 切换表单 js (rails)

ruby - 在 Padrino application.haml 模板中选择性地使用yield_content

ruby - HAML block 在产量上返回 `0`?

javascript - Node.js Heroku 部署 - 无法执行安装后脚本来安装 Bower

ruby-on-rails - Ruby:为什么 'and not' 有效而 '&& !(expr)' 无效?

ruby-on-rails - 多个 belongs_to 连接到同一个表(在 Rails 4.2 中,以干净的方式执行此操作的能力是否发生了变化?)

ruby-on-rails - 微数据:如何与模板/部分一起使用?