Haml 嵌套块
Haml nested blocks
我是 HAML 的新手。那么 HAML 中的这个呢?
-if @link.is_active
%a
-else
#custom-div
.custom-class
所以我想看看某些条件是否成立
<a><div id = "custom-div"><div class = "custom-class"></div></div></a>
如果它是假的:
<div id = "custom-div"><div class = "custom-class"></div></div>
没有复制块,我的意思不是这个:
-if @link.is_active
%a
#custom-div
.custom-class
-else
#custom-div
.custom-class
有人提议吗?
Haml 4.1.0.beta.1 有一个 haml_tag_if
helper。你可以这样使用它:
- haml_tag_if @link.is_active, :a do
#custom-div
.custom-class
如果你不会用4.1.0可以自己添加这个助手,很简单。这应该有效:
def haml_tag_if(condition, *tag)
if condition
haml_tag(*tag){ yield }
else
yield
end
end
根据 #custom-div .#custom-class
的复杂程度,您可以使用 link_to_if
:
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_if
= link_to_if @link.is_active, "html safe linkable text here", "url to link to"
我是 HAML 的新手。那么 HAML 中的这个呢?
-if @link.is_active
%a
-else
#custom-div
.custom-class
所以我想看看某些条件是否成立
<a><div id = "custom-div"><div class = "custom-class"></div></div></a>
如果它是假的:
<div id = "custom-div"><div class = "custom-class"></div></div>
没有复制块,我的意思不是这个:
-if @link.is_active
%a
#custom-div
.custom-class
-else
#custom-div
.custom-class
有人提议吗?
Haml 4.1.0.beta.1 有一个 haml_tag_if
helper。你可以这样使用它:
- haml_tag_if @link.is_active, :a do
#custom-div
.custom-class
如果你不会用4.1.0可以自己添加这个助手,很简单。这应该有效:
def haml_tag_if(condition, *tag)
if condition
haml_tag(*tag){ yield }
else
yield
end
end
根据 #custom-div .#custom-class
的复杂程度,您可以使用 link_to_if
:
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_if
= link_to_if @link.is_active, "html safe linkable text here", "url to link to"