我有这个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'}
答案 0 :(得分:13)
你可以这样做:
%table.form_upper{:style => "display:#{condition ? 'none' : ''};", :id => 'profile-info'}
答案 1 :(得分:3)
如果您提供的值为nil
或false
的属性,则Haml不会设置该值:
Haml的:
- # substitute an appropriate semantic class name here (not "hidden")
%table.form_upper#profile-info{ class:condition && 'empty' }
CSS:
table.empty { display:none }
答案 2 :(得分:1)
这种方式更好,因为您将样式与逻辑分开,因此您可以更好地控制:
在HAML中:
%table.form_upper{:class => "#{condition ? '' : 'nonvisible_fupper'};", :id => 'profile-info'}
%tr{:id => 'some-row'}
并在您的CSS文件中:
.nonvisible_fupper { display:none; }