ng-show和ng-hide在AngularJS中的使用

时间:2017-07-27 22:42:15

标签: angularjs using-directives

我知道ng-show和ng-hide之间的区别但是我在一次采访中被问到一个问题,如果我们有ng-show,为什么我们需要ng-hide因为我们知道它们都显示或隐藏给定的HTML元素基于它们的值,可以是true或false。我们应该支持ng-show而不是ng-hide,反之亦然?

3 个答案:

答案 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>