什么时候使用 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
我知道 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