2016-11-29 8 views

Odpowiedz

21

Można to zrobić poprzez stworzenie usługodawcy

import {Injectable} from '@angular/core'; 
import {Http, Response} from '@angular/http'; 
import 'rxjs/Rx'; 

@Injectable() 
export class yourService { 
    constructor(public http:Http) {} 

getData() { 
    return this.http.get("YOUR_PATH_TO_THE_JSON_FILE") 
     .map((res:Response) => res.json().YOUR_JSON_HEADER); //records in this case 
    } 
} 

Zdefiniuj usługę w swoim konstruktorze ts i wywołać metodę analizowania przez dane

this.yourService.getData().subscribe((data) => { 
    console.log("what is in the data ", data); 
    this.myjsondata = data; 
}); 

Upewnij zdefiniować usługodawcy w app.module.ts

Za obietnice, jak w Twoim przypadku, zmień kod w następujący sposób: W swoim serwisie.

load() { 
    console.log('json called'); 
    return new Promise(resolve => { 
     this.http.get('assets/data/patient.json').map(response => { 
      this.data = response.json(); 
      resolve(this.data); 
     }); 
    }); 
} 

Tutaj otrzymujesz dane i postanawiasz obiecać. Aby użyć tego w html, musisz pobrać dane ze strony komponentu w następujący sposób.

this.yourService.load().then((data) => { 
     console.log("what is in the data ", data); 
     this.patdata= data; 
    }); 

Możesz teraz użyć patdata w html

<h1> {{patdata | json}} </h1> 
+2

'load() { console.log ('json nazwie'); return new Promise (resolve => { this.http.get ('assets/data/patient.json'). Subscribe (odpowiedź => { this.data = response.json(); console.log (" json danych”) console.log (this.data) this.processData (this.data) console.log (this.data) rozwiązać (this.data) }); }) ; } ' –

+1

kod w komentarzu konwertuje json do obietnicy, a następnie zwraca dane. O ile kod, który udostępniłem, wykorzystuje obserwowalne. Możesz użyć jednego z nich w zależności od potrzeb. spójrz na różnicę między obserwowalną a obietnicą przed podjęciem decyzji :) – AishApp

+0

dobrze działa zamiast 'this.myjsondata = data' używam' this.patDat = data'. to jak doprowadzić go do html. –