我看到了a similar question,但我相信这里存在一定的差异,就是这段代码无法修复。我们考虑以下代码:
- if image['href']
%a{href: image['href']}
<some markup>
- else
<some markup>
如果不将代码移动到其他文件,我可以做些什么来避免重复?
UPD 我的问题似乎与this one重复。
答案 0 :(得分:2)
Haml 4.1(当前位于beta - 它might be version 5发布时)包含一个haml_tag_if
方法,可以执行您想要的操作:
- haml_tag_if image['href'], :a, href: image['href'] do
some markup
这将产生:
<a href='foo'>
some markup
</a>
或只是
some markup
取决于image['href']
是否真实。
如果您还不想升级,可以自己添加方法作为帮助,请查看类似问题的答案:https://stackoverflow.com/a/8595810/214790(代码与Haml中的新代码基本相同本身)。