我理解ng-show和ng-hide影响元素上设置的类,而ng-if控制是否将元素呈现为DOM的一部分。
有关于选择ng-if over ng-show / ng-hide或反之亦然的指南吗?
取决于您的用例,但总结区别:
原文链接:https://www.f2er.com/angularjs/147495.html> ng-if将从DOM中删除元素。这意味着所有的处理程序或连接到这些元素的任何东西都会丢失。例如,如果您将某个点击处理程序绑定到其中一个子元素,那么当ng-if计算为false时,该元素将从DOM中删除,并且您的点击处理程序将不再工作,即使在ng(如果稍后评估为true)显示元素。您将需要重新附加处理程序。
> ng-show / ng-hide不会从DOM中删除元素。它使用CSS样式来隐藏/显示元素(注意:您可能需要添加自己的类)。这样,你附加到孩子的处理程序不会丢失。
> ng-if创建子范围,而ng-show / ng-hide不创建子范围
不在DOM中的元素对性能的影响较小,并且当使用ng-if(与ng-show / ng-hide相比)时,您的网络应用程序可能看起来更快。根据我的经验,差异可以忽略不计。当使用ng-show / ng-hide和ng-if时,可以使用动画,并在Angular文档中提供示例。
最后,你需要回答的问题是你是否可以从DOM中删除元素或不?