我明白那个ng-show
and ng-hide
影响元素上设置的类ng-if
控制元素是否呈现为 DOM 的一部分。
有没有选择指南ng-if
over ng-show
/ng-hide
或相反亦然?
取决于您的用例,但总结一下差异:
-
ng-if
将从 DOM 中删除元素。这意味着所有附加到这些元素的处理程序或其他任何内容都将丢失。例如,如果将单击处理程序绑定到子元素之一,则当ng-if
计算结果为 false,该元素将从 DOM 中删除,并且您的点击处理程序将不再工作,即使在ng-if
后来评估为 true 并显示该元素。您将需要重新连接处理程序。
-
ng-show/ng-hide
不会从 DOM 中删除元素。它使用 CSS 样式来隐藏/显示元素(注意:您可能需要添加自己的类)。这样,您附着在孩子身上的处理程序就不会丢失。
-
ng-if
创建一个子作用域,同时ng-show/ng-hide
才不是
不在 DOM 中的元素对性能的影响较小,并且您的 Web 应用程序在使用时可能会显得更快ng-if
相比ng-show/ng-hide
。根据我的经验,差异可以忽略不计。同时使用时可以使用动画ng-show/ng-hide
and ng-if
,Angular 文档中提供了这两个示例。
最终,您需要回答的问题是是否可以从 DOM 中删除元素?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)