6

私はこの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'}
4

3 に答える 3

13

あなたはこれを行うことができます:

%table.form_upper{:style => "display:#{condition ? 'none' : ''};", :id => 'profile-info'}
于 2012-04-15T15:54:33.407 に答える
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 }
于 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 に答える