2011-05-27 8 views
5

Tengo el siguiente en mi opinión:HAML: Sangrado if/else declaraciones con contenido común

- if (condition) 
    %div.truecondition 
    (Ten lines of content) 
- else 
    %div.falsecondition 
    (Ten lines of the same content) 

me gustaría factorizar las diez líneas de contenido para ir debajo de la sentencia if/else .. .pero si lo hago, la sangría significa que el contenido no se anidará dentro de la div especificada en el if/else. Estoy seguro de que este es un problema común, solo me pregunto cuál es la solución. Entonces ... ¿cómo factoro esas diez líneas manteniendo el contenido anidado en .truecondition/.falsecondition div?

Respuesta

12

puede probar Ternary operator:

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

respuesta de JCorcuera es mejor, pero esto es más sucio:

%div(class="#{!!condition}condition") 
    (Ten lines of content) 

Suponiendo que, literalmente, tiene clases CSS nombrados truecondition y falsecondition, que mientras escribo esto parece improbable.