我想知道在同一个DOM元素上使用ng-show和ng-hide是否是一个好习惯。
这似乎是一个更好的主意,而不是在单个ng-show中使用多个条件,其中一些条件否定了。
让我知道。 谢谢!
PS:这是一个例子
<div ng-show="isBlonde" ng-hide="hasBlueEye">Mary is blonde and she has green eyes</div>
答案 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>