如果haml中的子句使用来自胡子的变量

时间:2015-02-15 15:22:04

标签: ruby haml mustache

this问题类似,我想在haml文件中使用if子句,特别是在实际存在图像url时才显示图像。代码是

%div{ :class => "attachment {{ attachment_type }}" }
  %a{ :href => "{{ attachment_url }}", :target=> "_blank"}
    %img.image{ :src => "{{ attachment_pic_url }

我正在尝试这样的事情:

:plain
<%if {{attachment_pic_url}}.present? %>
  <% { %>
    <img class="image" src="{{ attachment_pic_url}}"  %> %>"/>
  <% } %>

但它抱怨'Unclosed tag'。对这个问题有什么看法吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

Mustache没有逻辑,因为没有if语句。

我们可以改用标签。

在你的情况下 -

{{#attachment_pic_url}}
%a{ :href => "{{ attachment_url }}", :target=> "_blank"}
  %img.image{ :src => "{{ attachment_pic_url }}" }
{{/attachment_pic_url}}

如果attachment_key_url键不存在或存在且值为null,undefined,false,0或NaN,或者是空字符串或空列表,则不会呈现该块。

参考https://github.com/janl/mustache.js#false-values-or-empty-lists