2012-04-15 51 views
6

聲明我有這樣的HAML我怎樣做一個內聯如果HAML

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

我該怎麼辦顯示沒有對這個表,如果條件滿足例如像我知道我能做到這一點,但我覺得那裏一定是這樣

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

回答

13

的在線方式,你可以這樣做:

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

或者更簡潔:'%table.form_upper#配置文件的信息(顯示= 「#{:如果沒有條件}」)' – Phrogz 2012-04-15 16:11:46

1

這樣更好,因爲你分開ST從邏輯YLE因此,你已經更多的控制權:

在HAML:

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

,並在你的CSS文件:

.nonvisible_fupper { display:none; } 
+1

需要注意的是'顯示:block'是表格的錯誤顯示樣式。最好只在必要時隱藏它,並讓其默認爲正確的顯示樣式。 – Phrogz 2012-04-15 16:13:52

+0

對!感謝您的糾正!我會編輯它 – YogiZoli 2012-04-15 23:12:32

3

如果你提供一個nilfalse值,Haml的屬性將不會設置它:

Haml:

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

CSS:

table.empty { display:none } 
+0

最好的解決方案,選擇這一個 – YogiZoli 2012-04-15 23:16:05

相關問題