我正在使用角度版本 9。我有 2 个组件。1 搜索汽车制造商、型号和第二个组件以加载从组件 1 中选择的汽车的详细信息。我将汽车的图像链接从从组件 1 中选择的汽车传递到组件 2 并将该图像加载到组件 2. 这工作正常..
当我浏览到应用程序中的其他页面并再次转到组件 1 并选择不同的汽车并转到组件 2 时,先前选择的汽车的图像显示大约 1-2 秒,然后显示我的新图像。这看起来像是浏览器缓存问题。我最初尝试加载加载器图像,直到我的新图像完成加载,然后显示新加载的图像,但它不起作用。我尝试过的如下。
<img *ngIf="isLoading" [src]="loadingimage.png" />
<img [hidden]="isLoading" [src]="carModelImage" (load)="isLoading = false"/>
我注意到的是,在打开组件 2 的那一刻,标签(load)
上的事件img
会触发并将 isLoading 值更改为 false,即使没有等待新carModelImage
的加载,因此之前的图像显示了一段时间。
我的组件代码如下所示。
@Component({
selector: 'app-request-summary',
templateUrl: './request-summary.component.html',
styleUrls: ['./request-summary.component.scss']
})
export class RequestSummaryComponent implements OnInit, OnDestroy {
public carModelImage: string = '';
public isLoading: boolean = true;
constructor() {
this.carModelImage = '';
this.isLoading = true;
}
ngOnInit() {
this.requestSummaryService.carData
.pipe(takeUntil(this.ngUnsubscribe))
.subscribe((data) => {
this.carModelImage = data[0].carModelImage ? data[0].carModelImage
:'http://nocarimage.png';
}
}
ngOnDestroy() {
this.isLoading = true;
this.carModelImage = '';
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
}
}
由于这个问题,我一直在苦苦挣扎。任何帮助将不胜感激。