2017-01-24 13 views
0

Следующий фрагмент кода не работает Пожалуйста, предложите любой другой способ сделать этоМожем ли мы иметь 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> 
+0

Да, вы можете иметь. – Jenny

ответ

0

Да, вы можете, оба разные.

ng-show 

устанавливает display:none элемента, когда выражение в false в то время как ng-if удаляет элемент из DOM, когда выражение для false

0

В вашем html-коде вы используете что-то не так, потому что вы используете ng-model для 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> 

нг-модель используется для связывания значения любого InputBox/текстовой/выбрать, как теги, вы не можете связать любое значение, как это:

<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'" возвращает истинный, то все элементы будут создавать , иначе элемент не будет создан.