我正在使用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
为真且var2
或var3
取决于condition
时,其中任何一个也都为假,则div实际上是空的,但它确实显示在网页上,因为{{1} } 是真的。如果孩子也被隐藏,我希望父div继承var1
。
答案 0 :(得分:0)
您可以将ng-show= var1 && (var2 || var 3)
的条件更改为div
,这样只有当var2
或var3
中的任何一个设置为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>