所以我不久前为 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/