如果隐藏了子div,则将父div设置为hidden

时间:2018-01-09 07:55:45

标签: html css angularjs

我正在使用angular,我需要使用ng-show指令控制div的可见性。考虑下面的dom树:

<div ng-show="var1">
  <div ng-switch="condition">
    <div ng-switch-when=true>
      <div ng-show="var2"></div>
    </div>
    <div ng-switch-default>
      <div ng-show="var3"></div>
    </div>
  </div>
</div>

现在,当var1本身为假时,它很好。但是当var1为真且var2var3取决于condition时,其中任何一个也都为假,则div实际上是空的,但它确实显示在网页上,因为{{1} } 是真的。如果孩子也被隐藏,我希望父div继承var1

2 个答案:

答案 0 :(得分:0)

您可以将ng-show= var1 && (var2 || var 3)的条件更改为div,这样只有当var2var3中的任何一个设置为true时,才会显示您的父div

<div ng-show="var1 && (var2 || var3)">
  <div ng-shitch="condition">
    <div ng-switch-when=true>
      <div ng-show="var2"></div>
    </div>
    <div ng-switch-default>
      <div ng-show="var3"></div>
    </div>
  </div>
</div>

答案 1 :(得分:0)

我将使用简单的AND和OR语句,这样:

t=# prepare st(text) as select oid,datname 
from pg_database 
where case when $1 is null then true else datname like '%'||$1||'%' end;
PREPARE
t=# execute st('post');
  oid  | datname
-------+----------
 13505 | postgres
(1 row)

t=# execute st(null);
  oid  |  datname
-------+-----------
 13505 | postgres
 16384 | t
     1 | template1
 13504 | template0
 16419 | o
 16816 | db
(6 rows)

因此,只有当其中一个孩子“启用”并且可见时,您的实际父div才会显示。

P.S。

小心,你在第二行写了一个拼写错误,<div ng-show="var1 && (var2 || var3)"> <div ng-switch="condition"> <div ng-switch-when=true> <div ng-show="var2"></div> </div> <div ng-switch-default> <div ng-show="var3"></div> </div> </div> </div>