2014-01-21 56 views
10

我想知道在同一個DOM元素上使用ng-show和ng-hide是否是一種好的做法。在同一個DOM元素上使用ng-show和ng-hide是否正確?

似乎是一個更好的主意,而不是使用多個條件,其中一些否定,在單個ng顯示。

讓我知道。 謝謝!

PS:這裏的例子

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

回答

21

絕對不會:

否則,你可能就結了。

首先,這兩個指令可以在彼此(見本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

感謝您的詳盡解釋。 – jollyr0ger

3

使用一個而不是兩個。選擇使表達最具可讀性的那個。

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

這對我有意義。謝謝你讓我注意到這個潛在的問題。 – jollyr0ger

+4

體驗奇怪:http://jsfiddle.net/edE7M/ –

+0

我覺得這個解決方案並不理想 – Muhammed

相關問題