2012-04-15 21 views
6

que tiene este haml¿Cómo puedo hacer una línea Cuando la declaración en haml

%table.form_upper{:style => "display:none;", :id => 'profile-info'} 
    %tr{:id => 'some-row'} 

¿cómo lo hago exhiba ninguno en esta tabla si se cumple una condición, como por ejemplo, yo se que puedo hacer esto, pero me siento tiene que haber una manera de hacer esto en línea

-if condtion 
    %table.form_upper{:id => 'profile-info'} 
-else 
    %table.form_upper{:style => "display:none;", :id => 'profile-info'} 
    %tr{:id => 'some-row'} 

Respuesta

13

usted puede hacer esto:

%table.form_upper{:style => "display:#{condition ? 'none' : ''};", :id => 'profile-info'} 
+1

O más concisamente: '% # table.form_upper perfil-info (display = "# {: ninguno si la condición}")' ' – Phrogz

1

de esta manera es mejor porque se separan st yle de la lógica, por lo tanto usted tiene más control:

En HAML:

%table.form_upper{:class => "#{condition ? '' : 'nonvisible_fupper'};", :id => 'profile-info'} 
    %tr{:id => 'some-row'} 

y en su archivo CSS:

.nonvisible_fupper { display:none; } 
+1

Tenga en cuenta que la pantalla: es la block' estilo de visualización incorrecto para una mesa. Es mejor ocultarlo solo cuando sea necesario y dejarlo de manera predeterminada con el estilo de visualización correcto. – Phrogz

+0

¡bien! ¡gracias por la corrección! Voy a editarlo – YogiZoli

3

Si proporciona un atributo con un valor nil o false, Haml no lo configurará:

Haml:

- # substitute an appropriate semantic class name here (not "hidden") 
%table.form_upper#profile-info{ class:condition && 'empty' } 

CSS:

table.empty { display:none } 
+0

mejor solución, elija este – YogiZoli

Cuestiones relacionadas