]> gitweb.hhaalo.de Git - speisekarten-editor.git/commitdiff
fix: json load with observable
authorBastian Dehn <hhaalo@arcor.de>
Thu, 9 Jun 2022 19:49:00 +0000 (21:49 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 9 Jun 2022 19:49:00 +0000 (21:49 +0200)
src/app/app.component.ts
src/app/json-file.service.ts

index 13ef1bd748ec4e40629737c21fcded0f9daf82f1..386cba1237340c446299e68635ae2b03bf6046b5 100644 (file)
@@ -27,7 +27,11 @@ export class AppComponent
 
        public fileEvent(event: any): void
        {
-               this.foodcard = this.jsonFileService.importJson(event);
+               let importobserv = this.jsonFileService.importJson(event);
+               importobserv.subscribe((next) => {
+                       this.foodcard = next;
+                       console.log(next);
+               });
        }
 
        public addTitle(): void
index a58a660011b8bfb7104ccbfab6850892453b02b5..f6f3d658022bedc0c0561e94a56240543b56d366 100644 (file)
@@ -1,5 +1,6 @@
 import { Injectable } from '@angular/core';
 import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
+import { Observable } from 'rxjs';
 import { IFoodCard } from './ifood-card';
 
 @Injectable({
@@ -17,16 +18,18 @@ export class JsonFileService
                        "data:text/json;charset=UTF-8," + json);
        }
 
-       public importJson(event: any): IFoodCard
+       public importJson(event: any): Observable<IFoodCard>
        {
-               let foodcard: IFoodCard = { Titles: [] };
+               let observ = new Observable<IFoodCard>((observ) => {
+                       let foodcard: IFoodCard = { Titles: [] };
 
-               const reader = new FileReader();
-               reader.onload = (e: any) => {
-                       foodcard = JSON.parse(e.target.result);
-               }
-               reader.readAsText(event.target.files[0]);
+                       const reader = new FileReader();
+                       reader.onload = (e: any) => {
+                               observ.next(JSON.parse(e.target.result));
+                       }
+                       reader.readAsText(event.target.files[0]);
+               });
 
-               return foodcard;
+               return observ;
        }
 }