In Ihrem Controller abgeschlossen ist, fügen Sie eine Funktion, um das ‚onLoad‘ Ereignis zu behandeln, den Staat zu {loading: false}
Einstellung:
loading: boolean = true
onLoad() {
this.loading = false;
}
in Ihrer Vorlage machen eine Lade gif (oder was auch immer Sie wollen), während der Zustand loading === true
hat, der schwierige Teil ist, dass Sie nur das img
Element verstecken mit [hidden]="true/false"
im Gegensatz zu verhindern, dass zu machen, damit es tatsächlich die src
lädt, dann binden Sie einfach die onLoad
Funktion in der Steuerung mit dem (load)
Ereignisse auf dem tatsächlichen Bild:
<img *ngIf="loading" src="/assets/loading.gif" alt="loading" />
<img [hidden]="loading" (load)="onLoad()" src="{{ source }}" />
Diese Lösung funktionell die gleiche wie AngJobs der ist, aber es ist deklarativer und ein bisschen weniger umständlich IMO.
PS: Mit [hidden]="boolean"
anstelle von *ngIf
ist ein bisschen eine Frage, sollten Sie zu http://angularjs.blogspot.com/2016/04/5-rookie-mistakes-to-avoid-with-angular.html zu verstehen, warum und für eine Lösung, wie man es sicher anwenden.
https://webcake.co/a-loading-spinner-in-angular-2-using-ngswitch/, überprüfen Sie dies vielleicht wird es u führen .. –