问题
I have the following in my view:
- if (condition)
%div.truecondition
(Ten lines of content)
- else
%div.falsecondition
(Ten lines of the same content)
I'd like to factor out the ten lines of content to go below the if/else statement...but if I do that, indentation means the content won't be nested inside the div specified in the if/else. I'm sure this is a common problem, I'm just wondering what the solution is. So...how do I factor out that ten lines while keeping the content nested in the .truecondition/.falsecondition div?
回答1:
you can try Ternary operator:
%div{ :class => condition ? 'truecondition' : 'falsecondition' }
(Ten lines of content)
回答2:
JCorcuera's answer is better, but this is dirtier:
%div(class="#{!!condition}condition")
(Ten lines of content)
Assuming you literally have css classes named truecondition
and falsecondition
, which as I type this seems unlikely.
来源:https://stackoverflow.com/questions/6147610/haml-indenting-if-else-statements-with-common-content