在同一个DOM元素上使用ng-show和ng-hide是否正确?

时间:2014-01-21 13:55:14

标签: javascript angularjs

我想知道在同一个DOM元素上使用ng-show和ng-hide是否是一个好习惯。

这似乎是一个更好的主意,而不是在单个ng-show中使用多个条件,其中一些条件否定了。

让我知道。 谢谢!

PS:这是一个例子

<div ng-show="isBlonde" ng-hide="hasBlueEye">Mary is blonde and she has green eyes</div>

2 个答案:

答案 0 :(得分:25)

绝对不是。

首先,这两个指令可以相互跳过(请参阅此JSFiddle,由 Joel Skrepnek 提供),并且通常只是糟糕的设计。

您可以使用函数,其他字段或更多内联逻辑。

<强> 直列逻辑:

<div ng-show="isBlonde && !hasBlueEye">Mary is blonde and she has green eyes</div>

<强> 字段:

<div ng-show="shouldShowThisDiv">Mary is blonde and she has green eyes</div>

<强> 功能

<div ng-show="shouldShowThisDiv()">Mary is blonde and she has green eyes</div>

$scope.shouldShowThisDiv = function(){
    return $scope.isBlonde && !$scope.hasBlueEye;
}
如果需要检查的值超过2个,

我的建议将使用其他字段函数

答案 1 :(得分:5)

使用一个但不是两个。选择使表达式最具可读性的那个。

否则你最终会得到:

<div ng-show='true' ng-hide='true'></div>