【问题标题】:Stange behaviour about ng-content关于 ng-content 的异常行为
【发布时间】:2018-10-31 22:15:13
【问题描述】:

假设有这个角码:

<ng-container *ngFor="let ..."></ng-container>

<ng-container *ngIf="execute()"></ng-container>

我想首先执行 *ngFor 计算一些东西,然后我想执行 *ngIF。 *ngIf 函数执行使用一些从 *ngFor 计算的值。所以我们需要在执行 *ngFor 之后以及在我需要执行 *ngIf 之后。问题是在 *ngFor 开始时首先调用 *nif。谁能帮帮我?

【问题讨论】:

  • 你有两个 ng 容器吗?还是 ngIf 和 ngFor 都用于同一个容器?
  • @Aragorn 在同一个容器中!

标签: angular angular6


【解决方案1】:

理想情况下,您应该在 ts 文件中处理这种情况。然而,这是另一种方法 -

<ng-container *ngFor="let ...; let last = last">
        ....
    <ng-container *ngIf="last ? execute() : null"></ng-container> <!-- Execute at last index -->
</ng-container>

【讨论】:

  • 我认为 OP 正在寻找不嵌套 ngIf
【解决方案2】:

你可能想要的是这样的:

<ng-container *ngFor="let.... ">
  <div *ngIf="execute">
       //your stuff here....
  </div>
</ng-container>

【讨论】:

  • @Aragon 我不能这样做,因为 *ngIf 中的执行方法必须使用在 *ngFor 之后获得的值进行评估
  • @Doflamingo19 更新了答案,所以你需要如果在 ngFor 中
  • @Doflamingo19 - 我的意思是我更新了答案...试试看
  • 我需要计算 *ngFor 之后我们得到一些可以执行 *ngif 的值
  • 你的意思是完成 ngFor 循环,然后转到另一个有 ngIf 的块?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-24
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多