haml 中的 If 子句使用来自 mustache 的变量

If clause in haml using variable from mustache

类似的问题,我想在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'。知道这个问题吗?或者有更好的方法吗?

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.