我从食谱的API中提取数据,我已经有一个可以正常工作的食谱列表,但是现在我要求单个食谱详细信息(1个对象 )。我的控制台日志下面是JSON的样子。无论我做什么,我都无法在前端显示,请尽可能地帮助。单个数组JSON对象不会打印(Ionic 2)
打字稿
details: any;
loadDetails() {
if (this.details) {
return Promise.resolve(this.details);
}
return new Promise(resolve => {
this.http.get('http://api.yummly.com/v1/api/recipe/Crustless-Ham-Savory-Bake-2005439?_app_id=//////&_app_key=/////')
.map(res => res.json())
.subscribe(data => {
console.log(data);
this.details = data;
resolve(this.details);
});
});
}
HTML
<ion-content>
<ion-list>
<ion-item>
<h1>{{details.id}}</h1>
</ion-item>
</ion-list>
</ion-content>
Pagename.ts
@Component({
selector: 'page-details',
templateUrl: 'details.html',
providers: [ApiAuthentication]
})
export class DetailsPage {
public api: any;
constructor(public navCtrl: NavController, public navParams: NavParams, public apiAuthentication: ApiAuthentication) {
this.loadRecipes();
}
ionViewDidLoad() {
console.log('ionViewDidLoad DetailsPage');
}
loadRecipes(){
this.apiAuthentication.loadDetails()
.then(data => {
this.api = data;
});
}
}
我在返回的对象中没有看到任何描述。你需要一个键来访问try details.id forst来查看id是否正在打印 –
@AniruddhaDas对不起,我现在已经改变为ID(与其他值搞乱)我得到一个错误**无法读取未定义的属性'ID' * – BA1995
@ BA1995。这是异步值的经典案例:在**'details'实际定义之前,您的模板尝试访问'details.id' **(因为它是异步冷却的结果,所以不会立即分配它)。尝试在您的模板中使用{{details?.id}}。 – AngularChef