Angular2-Dateidownloads leicht gemacht
Bei der Entwicklung eines Angular2-Clients für eine WebApi- oder MVC-App kann das Verständnis der Dateispeicherung entmutigend sein. Diese exemplarische Vorgehensweise führt Sie durch den Prozess des Auslösens von Dateispeicherungen in Angular2 und darüber hinaus.
In Angular2 führt die beobachtbare Natur der Anforderungsverarbeitung zu einer subtilen Wendung. Um eine Datei erfolgreich herunterzuladen, müssen Sie das Datei-URL-Objekt innerhalb der Rückruffunktion des Observablen erstellen. Dadurch wird sichergestellt, dass die Dateidaten verfügbar sind, wenn die URL erstellt wird.
Der folgende Codeausschnitt zeigt beispielsweise, wie mit Dateidownloads umgegangen wird:
this._reportService.getReport().subscribe(data => this.downloadFile(data)),//console.log(data), error => console.log('Error downloading the file.'), () => console.info('OK');
Hier unser _reportService.getReport( )-Aufruf gibt ein Observable zurück. Wenn die Anfrage abgeschlossen ist, wird die downloadFile-Funktion mit den Dateidaten aufgerufen.
In downloadFile erstellen wir ein Blob-Objekt aus den empfangenen Daten und geben seinen MIME-Typ an:
downloadFile(data: Response) { const blob = new Blob([data], { type: 'text/csv' }); const url= window.URL.createObjectURL(blob); window.open(url); }
Mit Nachdem das Blob-Objekt erstellt wurde, können wir mit createObjectURL die herunterladbare URL generieren. Schließlich löst window.open(url) das Speichern der Datei aus.
Zusammenfassend lässt sich sagen, dass Sie durch die Handhabung von Dateidownloads innerhalb der Rückruffunktion des Observablen den Zugriff auf die heruntergeladenen Daten zum richtigen Zeitpunkt sicherstellen können. Dadurch können Sie in Ihren Angular2-Anwendungen mühelos eine nahtlose Funktionalität zum Herunterladen von Dateien bereitstellen.
Das obige ist der detaillierte Inhalt vonWie implementieren Sie mühelose Dateidownloads in Ihrer Angular2-Anwendung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!