有没有办法延迟ngx-bootstrap手风琴的开启?

时间:2018-06-29 21:34:13

标签: ngx-bootstrap

<accordion [closeOthers]=true>
  <accordion-group *ngFor="let activity of activities" [heading]="activity.Name" (click)="openPanel(activity)" (isOpenChange)="openStatusChange($event)">
    <ul *ngFor="let chemical of chemicals">
      <li>{{chemical.BrandName}}</li>
    </ul>
    <div *ngIf="!chemicals?.length > 0">No chemicals associated with this activity type.</div>
  </accordion-group>
</accordion>

单击Accordian标头时,它会打开并运行并触发“ openPanel()”(它是一个http.get),然后填充面板。如果数组返回空,则* ngIf将显示“无关联的东西”消息。

问题在于手风琴打开到阵列被填充之间有很小的滞后,因此,当手风琴打开时,化学品阵列始终为空。这样一来,“无关联的东西”消息将出现约半秒钟,然后列表将被填充。所以我想知道是否有一种方法可以将打开时间延迟到填充数组之前,或者欢迎提出建议。

1 个答案:

答案 0 :(得分:0)

您可以将布尔标志或函数用于ngIf。在http promise返回成功时设置标志,这样ngIf仅在http call promise解决后触发。

类似:

http.get('url').subscribe(response => {
  show = true;
});