Мы можем иметь ng-show и ng-if в одном теге div?
Следующий фрагмент кода не работает Пожалуйста, предложите любой другой способ сделать это
<html>
`<div id="tablediv" ng-model="ngtable">
<div ng-show="ngtable">
<div ng-if="currentdevicetype == 'condition1'">
<!-- Other code to display contents -->
</div>`
</div>
</div>
</html>
3 ответа
Да, вы можете, оба разные.
ng-show
устанавливает display:none
элемента, когда выражение оценивается как false
в то время как ng-if
удаляет элемент из DOM, когда выражение оценивается как false
Проверьте этот вопрос, чтобы узнать различия между ng-show и ng-if & где и как их использовать:
Когда отдать предпочтение нг-если против нг-шоу / нг-скрыть?
В вашем HTML-коде вы используете что-то не так, потому что вы используете ng-model
для див.
<html>
<div id="tablediv" ng-model="ngtable">
<div ng-show="ngtable">
<div ng-if="currentdevicetype == 'condition1'">
<!-- Other code to display contents -->
</div>
</div>
</div>
</html>
ng-модель используется для привязки значения любого тега inputbox/textarea/select, вы не можете привязать любое значение следующим образом:
<div id="tablediv" ng-model="ngtable">
если вы удалите это ng-model
тогда ваш код будет выглядеть так:
<html>
<div id="tablediv">
<div ng-show="ngtable">
<div ng-if="currentdevicetype == 'condition1'">
<!-- Other code to display contents -->
</div>
</div>
</div>
</html>
Сейчас если ngtable
иметь какое-то значение это означает ng-show=true
затем
<div ng-show=true>
// all the elements are visible on the DOM.
</div>
но если если ngtable
не имеет никакого значения это значит ng-show=false
затем:
<div ng-show=false>
// all the elements are not visible on the DOM.
</div>
И внутри этого кода:
<div ng-if="currentdevicetype == 'condition1'">
<!-- Other code to display contents -->
</div>
если ng-if="currentdevicetype == 'condition1'"
возвращает true, тогда все элементы будут созданы, иначе элемент не будет создан.