Правильно ли использовать ng-show и ng-hide на одном и том же элементе DOM?

Мне было интересно, стоит ли использовать ng-show и ng-hide на одном и том же элементе DOM.

Кажется, лучшая идея, вместо использования нескольких условий, некоторые из которых отрицаются в одном ng-show.

Сообщите мне. Спасибо!

PS: здесь пример

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

Ответ 1

Абсолютно нет.

Прежде всего, две директивы могут перемещаться друг над другом (см. JSFiddle, как это предусмотрено Joel Skrepnek) и, как правило, плохой дизайн.

Вы можете использовать функцию, другое поле или еще немного встроенной логики.

Инлайн-Logic:

<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

Используйте один, но не оба. Выберите тот, который сделает выражение наиболее читаемым.

В противном случае вы можете:

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