类变量的angular2 http响应设置
我正在进行http调用以从本地json文件获取数据。由于延迟接收响应,我无法在模板上显示响应数据 服务正在进行HTTP调用以从json文件获取数据类变量的angular2 http响应设置,angular,ionic2,angular2-services,Angular,Ionic2,Angular2 Services,我正在进行http调用以从本地json文件获取数据。由于延迟接收响应,我无法在模板上显示响应数据 服务正在进行HTTP调用以从json文件获取数据 export class DataBook { bookDetails: Array<Object>; constructor(public http: Http) { this.bookDetails = []; } makeDataReady(){ this.http.get('assets
export class DataBook {
bookDetails: Array<Object>;
constructor(public http: Http) {
this.bookDetails = [];
}
makeDataReady(){
this.http.get('assets/preloaded-data/booksummaries.json')
.map(res => res.json())
.subscribe(
data => this.bookDetails = data,
error => alert(error),
() => console.log(this.bookDetails) //output the json file content
);
}
appendBook(book:Object)
{
this.bookDetails.push(book);
}
getBooks():Array<Object>
{
return this.bookDetails;
}
}
我是安格拉尔的新手。我很难理解为什么响应会延迟?我自己找到了解决方案。我刚刚在
this.bookDetails=[]之后在提供者或服务构造函数中进行了http调用代码>类似
constructor(public http: Http) {
this.bookDetails = [];
this.init();
}
init(): void {
this.http.get('assets/preloaded-data/booksummaries.json')
.map(res => res.json())
.subscribe(
data => this.bookDetails = data,
error => alert(error),
() => console.log(this.bookDetails) //output the json file content
);
}
它很好用。无论如何,谢谢大家 不建议在构造函数中放置Http调用(有关详细信息,请参阅此-)
如果你把它放在ngOnInit或ionViewDidLoad中,它不应该引起任何空间延迟——试试看
此外,在您的代码示例中,构造函数出现在第二位(在ngOnInit之后)——它不会导致错误,但它非常不标准 我把HTTP调用放在ngOnInit中,它停止工作了;我不能在那里使用ngOnInit
constructor(public http: Http) {
this.bookDetails = [];
this.init();
}
init(): void {
this.http.get('assets/preloaded-data/booksummaries.json')
.map(res => res.json())
.subscribe(
data => this.bookDetails = data,
error => alert(error),
() => console.log(this.bookDetails) //output the json file content
);
}