我正在处理的代码有:
<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来控制此消息的可见性是否有任何优势?
答案 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页面,但它只会以隐藏模式。