【问题标题】:Is it possible to use Angular ngIf without removing element from the DOM?是否可以在不从 DOM 中删除元素的情况下使用 Angular ngIf?
【发布时间】:2019-05-01 13:56:07
【问题描述】:

我知道你们中的一些人会对这个问题感到畏缩,因为我知道我所问的并不是最佳实践。不过,我还是要问一下,希望将滥用行为控制在最低限度。

ngIf 在条件语句为 false 时从 DOM 中删除元素。是否有设置、标志、参数等会改变 ngIf 的行为,以便元素保留在 DOM 中并设置为 display: none?我不是在寻找解决方法,例如 [hidden],但我想知道是否可以更改 *ngIf 的行为。

我很快(这是关键字)更新了一个现有的 jQuery 项目。该项目正在为手风琴使用“.toggle()”方法。作为更新的一部分,现在使用 ngIf 过滤手风琴项。因为 jQuery 代码会在应用加载时初始化手风琴,使用 ngIf 将其删除,“未初始化”它们。

我使用了一种解决方法来解决这个问题。但是我仍然很好奇改变 ngIf 行为的选项是否可用。

【问题讨论】:

标签: angular angular-ng-if


【解决方案1】:

ngIf 没有这种行为。

改用ngStyle

[ngStyle]="{display: condition ? 'block' : 'none'}"

【讨论】:

    【解决方案2】:

    您可以使用[hidden]。记住要否认你的第一个条件。

    <div [hidden]="!yourCondition" >
        
    </div>
    

    【讨论】:

    • 我知道。我在原始问题中提到了这一点。这个问题完全是关于 *ngIf
    【解决方案3】:

    如果您不只是试图改变 ng-if 的行为,而只是试图获得您所说的行为,那么您可以使用

    ng-show

    【讨论】:

      猜你喜欢
      • 2018-06-02
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 2019-10-23
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多