您可以通过创建一个服务提供商
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
}
}
定义服务在您的TS构造并调用该方法通过数据来分析这样做
this.yourService.getData().subscribe((data) => {
console.log("what is in the data ", data);
this.myjsondata = data;
});
确保定义服务提供商在app.module.ts
对于承诺在你的情况下修改代码如下: 在您服务。
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);
});
});
}
在这里,您正在获取数据并解决承诺。要在html中使用此功能,必须按如下方式在组件页面中获取数据。
this.yourService.load().then((data) => {
console.log("what is in the data ", data);
this.patdata= data;
});
您现在可以使用patdata在HTML
<h1> {{patdata | json}} </h1>
'负载(){ 的console.log( 'JSON称为'); 返回新的Promise(解析=> { this.http.get('assets/data/patient.json')。subscribe(response => {this.data = response.json(); console.log(“ JSON数据”); 的console.log(this.data); this.processData(this.data); 的console.log(this.data); 解析(this.data); });} ) ; }'里面的评论 –
代码转换的JSON承诺,然后返回数据。虽然我共享的代码使用可观察的。你可以根据你的需要使用它们中的任何一个。决定之前对观察到的和承诺之间的差别来看看:) – AishApp
好其工作,而不是'this.myjsondata = data'我使用'this.patDat = data'。那么如何把它带到html。 –