HAML: Indenting if/else statements with common content

别说谁变了你拦得住时间么 提交于 2020-01-03 09:58:17

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!