角 4 | 触发 *ngIf 时创建额外的 div

Jyd*_*Mah 2 angular-ng-if ngfor angular

美好的一天,我在这里做什么?我正在调用 API 数据,但是在我的if条件下,它似乎在验证为 false 时创建了额外的 div。

<div *ngFor="let apidata of data">
    <div class="box" *ngIf="apidata.Zone == 8">
      <div class="box-assignmentnumber-holder">
        <span id="AssignmentNumber">{{apidata.Assignment}}</span>
      </div>
      <div class="newAssignment">
        <span>{{ apidata.Operator == null ? 'New' : apidata.Operator }}</span>
      </div>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

在我的代码中消除额外 div 的最佳方法是什么?

下面的示例结果..

<div></div> <---extra div when false
<div></div> <---extra div when false
<div class="box">
     <div class="box-assignmentnumber-holder">
          <span>123123</span>
     </div>
</div>
<div></div> <---extra div when false
Run Code Online (Sandbox Code Playgroud)

Viv*_*shi 5

您需要做的就是divng-containerof替换*ngFor

<ng-container *ngFor="let apidata of data">
    <div class="box" *ngIf="apidata.Zone == 8">
        <div class="box-assignmentnumber-holder">
            <span id="AssignmentNumber">{{apidata.Assignment}}</span>
        </div>
        <div class="newAssignment">
            <span>{{ apidata.Operator == null ? 'New' : apidata.Operator }}</span>
        </div>
    </div>
<ng-container>
Run Code Online (Sandbox Code Playgroud)

divs如果条件是,这不会产生额外的false

工作演示