Угловая нг-шкура или нг-шоу? Зачем?
Я видел эти вопросы много раз, но ни разу не увидел нормального ответа.
В чем разница между 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"
показать или скрыть элемент