Мы можем иметь 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, тогда все элементы будут созданы, иначе элемент не будет создан.

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