ng-if或ng-show隐藏和显示DIV?

时间:2016-03-23 05:07:15

标签: angularjs

我正在处理的代码有:

<div ng-if="cos.connectMessage" style="text-align: center;" class="ng-scope">
    Unable to establish a connection to the localhost server for 5 minutes.</div>

使用ng-show或ng-if来控制此消息的可见性是否有任何优势?

3 个答案:

答案 0 :(得分:2)

<强> NG-展示

ngShow指令根据提供给ngShow属性的表达式显示或隐藏给定的HTML元素。通过将.ng-hide CSS类移除或添加到元素上来显示或隐藏元素。 (reference

<强> NG-如果

ngIf指令基于{expression}删除或重新创建DOM树的一部分。如果分配给ngIf的表达式求值为false值,则从DOM中删除该元素,否则将该元素的克隆重新插入到DOM中。 (reference

注意:当ng-if删除元素时,它还会删除该元素的关联范围,并在条件变为true时重新创建它。

优势

我更喜欢使用ng-if特别是当元素内部的观察者数量更多时,因为它会完全破坏范围,从而使UI更快一些。但是对于包含较少观察者的小元素或元素来说,删除范围并重新创建它会花费成本。

答案 1 :(得分:0)

你可以参考这个解决方案,已经提到了很多问题 what is the difference between ng-if and ng-show/ng-hide

答案 2 :(得分:0)

如果您使用的是ng-if="false",那么ng-if下的html内容将不会包含在您的html页面中,但如果您使用的是ng-hide="true"ng-show="false",则html部分包含在您的html页面,但它只会以隐藏模式。