什么时候使用 ng-if vs ng-show/ng-hide?

When to use ng-if vs ng-show/ng-hide?

我知道 ng-show 和 ng-hide 影响元素上的 class 集,而 ng-if 控制元素是否作为 DOM[=11= 的一部分呈现]

是否有关于选择 ng-if 而不是 ng-show/ng-hide 或反之亦然的示例?

你已经在你的问题中总结过了。如果要根据条件显示和隐藏 DOM,请使用 ng-show。这适用于 DOM 工作流程、选项卡、部分等之间的转换。

<div ng-show="vm.tab == 'products'"></div>

如果您只想在条件发生时有条件地呈现 DOM,请使用 ng-if。这对于您不想公开更多 DOM 不必要的权限的权限特别有用。

<button ng-if="vm.data.allowSubmit" ng-click="vm.submit()" />

如果有一些信息您不想以任何方式向用户显示。 您希望即使在从 inspect element 编辑 DOM 之后用户无论如何也看不到它然后使用 ng-if 否则使用 ng-show.

ng-show 呈现 dom 但如果条件为假,则元素 display 将是 invisible.

`ng-if` renders the `dom` only if condition is true

有些情况下你不得不使用ng-show ex: 假设您正在使用在任何元素上 dom ready 上运行的任何 jquery 插件。如果元素在 ng-if 为真时稍后呈现,则 jquery 将不起作用。在这种情况下,您将需要使用 ng-show