小编典典

何时支持 ng-if 与 ng-show/ng-hide?

all

我理解ng-showng-hide影响元素上设置的类,并ng-if控制元素是否呈现为 DOM 的一部分。

是否有关于选择 /反之亦然的ng-if指导方针?ng-show``ng-hide


阅读 163

收藏
2022-03-10

共1个答案

小编典典

取决于您的用例,但总结差异:

  1. ng-if将从 DOM 中删除元素。这意味着您的所有处理程序或附加到这些元素的任何其他内容都将丢失。例如,如果您将点击处理程序绑定到子元素之一,当ng-if评估为 false 时,该元素将从 DOM 中删除,并且您的点击处理程序将不再工作,即使ng-if稍后评估为 true 并显示该元素。您将需要重新附加处理程序。
  2. ng-show/ng-hide不会从 DOM 中删除元素。它使用 CSS 样式来隐藏/显示元素(注意:您可能需要添加自己的类)。这样,您附加到孩子的处理程序就不会丢失。
  3. ng-if创建一个子范围,而ng-show/ng-hide不是

不在 DOM 中的元素对性能的影响较小,ng-ifng-show/ng-hide. 根据我的经验,差异可以忽略不计。ng-show/ng- hide当同时使用和时,动画是可能ng-if的,在 Angular 文档中都有例子。

最终,您需要回答的问题是您是否可以从 DOM 中删除元素?

2022-03-10