6

我有这个火腿

  %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'}
4

3 回答 3

13

你可以这样做:

%table.form_upper{:style => "display:#{condition ? 'none' : ''};", :id => 'profile-info'}
于 2012-04-15T15:54:33.407 回答
3

如果您为属性提供一个nilfalse值,Haml 将不会设置它:

哈姆尔:

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

CSS:

table.empty { display:none }
于 2012-04-15T16:14:46.377 回答
1

这种方式更好,因为您将样式与逻辑分开,因此您拥有更多控制权:

在 HAML 中:

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

在你的 CSS 文件中:

.nonvisible_fupper { display:none; }
于 2012-04-15T16:11:47.547 回答