Угловая нг-шкура или нг-шоу? Зачем?

Я видел эти вопросы много раз, но ни разу не увидел нормального ответа.

В чем разница между ng-hide и ng-show? есть один? если так, когда использовать один или другой (я понимаю нг-если, я спрашиваю только об этих двух).

Я надеюсь, что кто-то знает, спасибо.

4 ответа

Решение

Как мы знаем, angularjs - это двусторонняя привязка данных. ng-hide и ng-show - это то, что мы использовали для двух разных целей: один для скрытия, а другой для показа. например, если вы используете один метод, который возвращает истину или ложь. В любом случае скрытие одного элемента, который вы хотите показать другому, тогда вам нужно использовать только один метод для скрытия и отображения.

Директива ngShow показывает или скрывает данный элемент HTML на основе выражения, предоставленного атрибуту ngShow.

Элемент отображается или скрывается путем удаления или добавления CSS-класса.ng-hide на элемент. CSS-класс.ng-hide предопределен в AngularJS и устанавливает стиль отображения равным none (с помощью флага! Important).

ngHide - это просто синтаксический сахар, когда вам нужно инвертировать результат выражения.

В принципе, это было бы то же самое, чтобы использовать ng-show="!testSomething()" а также ng-hide="testSomething()",

Все это directive лайк ng-hide, ng-show а также ng-if принять условие в виде boolean и показать / скрыть от просмотра в соответствии с true а также false, Логика, которую они используют, чтобы скрыть и показать представление, различна.

ng-show а также ng-hide использовать внутренне CSS, как это:

display: none; // according to show or hide

Но когда мы используем условие нг-если-если true: добавляет элемент в DOM. если условие false: удаляет элемент из DOM.

Это значит ng-show сохраняет элементы в DOM и стоимость наблюдателя остается неизменной, в то время как пользователь не позволяет видеть элемент в DOM. И если вы замените ng-show с помощью ng-if вы можете стать свидетелями значительных улучшений в DOM, потому что эти дополнительные часы не для того, чтобы брать на себя ответственность

Если тот конкретный элемент, имеющий ng-if/ng-show/ng-hide в DOM может оказать влияние на производительность. Когда вы используете ng-if тогда приложение будет быстрее по сравнению с ng-show/ng-hide. Но разница не более значительна. Но если вы используете эти директивы в анимации, то есть вероятность проблем с производительностью.

Короче говоря, если вы можете удалить элемент из DOM, тогда вы должны использовать ng, если в противном случае вы должны использовать ng-show или ng-hide?

ng-show 

Позволяет сделать блок display:block элемента, когда выражение истинно, в то время как ng-hide позволяет вам установить display:none когда выражение верно Они просто противоположны друг другу. Не путайся. Используйте только один, ng-show как ng-show="exp" а также ng-show="!exp" показать или скрыть элемент

Другие вопросы по тегам