我整天都在搜索谷歌这个问题。我明白为什么它不起作用,但我找不到任何解决方案或其他方法来使它工作。我需要让它发挥作用。
当我浏览网址时,我已经创建了自己的API正常工作我得到了一个带有值的JSON文档。但现在我遇到了离子异步和同步问题。
Api服务
import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http";
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
@Injectable()
export class ApiService {
constructor(private _http: HttpClient) { }
public getUserById(id: string)
{
return this._http.get(`mysite`);
}
profile.ts
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { ApiService} from '../../services/ApiService';
@IonicPage()
@Component({
selector: 'page-profile',
templateUrl: 'profile.html',
})
export class Profile{
user : any;
constructor(public navCtrl: NavController, public navParams: NavParams, private api : ApiService) {
}
ionViewDidLoad() {
this.api.getUserById('test').subscribe(data => {
this.user = data;
console.log(this.user);
});
console.log(this.user);
console.log('ionViewDidLoad ProfilePage');
}
}
你看到两个console.log(this.user),一个在订阅内(这个ons正在工作,我在控制台中看到了我的JSON)。订阅之外的第二个(这一个给出了一个错误的解决方案)。
在谷歌搜索后,我发现这篇文章解释了它为什么不起作用。但我找不到任何其他解决方法如何以正确的方式做到这一点,因为现在我不能在我的html上使用{{user.name}}(例如)。
我的问题是我应该如何解决这个问题,或者如何在Ionic中使用API。