<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将显示“无关联的东西”消息。
问题在于手风琴打开到阵列被填充之间有很小的滞后,因此,当手风琴打开时,化学品阵列始终为空。这样一来,“无关联的东西”消息将出现约半秒钟,然后列表将被填充。所以我想知道是否有一种方法可以将打开时间延迟到填充数组之前,或者欢迎提出建议。
答案 0 :(得分:0)
您可以将布尔标志或函数用于ngIf。在http promise返回成功时设置标志,这样ngIf仅在http call promise解决后触发。
类似:
http.get('url').subscribe(response => {
show = true;
});