开发者

HAML: Indenting if/else statements with common content

开发者 https://www.devze.com 2023-03-09 03:14 出处:网络
I have the following in my view: - if (condition) %div.truecondition (Ten lines of content) - else %div.falsecondition

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 开发者_JAVA技巧keeping the content nested in the .truecondition/.falsecondition div?


you can try Ternary operator:

%div{ :class => condition ? 'truecondition' : 'falsecondition' }
  (Ten lines of content)


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消