我知道ng-show和ng-hide之间的区别但是我在一次采访中被问到一个问题,如果我们有ng-show,为什么我们需要ng-hide因为我们知道它们都显示或隐藏给定的HTML元素基于它们的值,可以是true或false。我们应该支持ng-show而不是ng-hide,反之亦然?
答案 0 :(得分:4)
可读性。
ng-hide="!feature.enabled"
比{{1}}更具可读性。双重否定更难理解。
答案 1 :(得分:2)
有一点需要注意的是,ng-show和ng-hide不会删除或创建DOM元素,但它们只是通过css显示或不显示它们
因此,切换一个元素很容易,另一个元素隐藏在DOM中 当然,如前所述,它们提供了可读性。
<p ng-show="guess === number">Correct</p>
<p ng-hide="guess === number">Incorrect</p>
答案 2 :(得分:2)
ng-hide
优先于ng-show
。因此,如果您愿意,您可以将这两者结合起来,并为他们提供两种不同的条件,如果您因任何原因想用ng-show
覆盖ng-hide
。我个人会建议不要这样做,因为你可以为一个指令提供多个条件来实现你所需要的。
<h1>Good dogs</h1>
<div ng-repeat="dog in $ctrl.getDogs()" ng-show="dog.isGoodBoy()" ng-hide="dog.isBadBoy()">
<p>{{dog.name}} is a good boy.</p>
</div>