Ich ziehe Daten aus einer API für Rezepte, ich habe bereits eine Liste von Rezepten, die gut funktioniert, aber ich fordere jetzt eine einzelne Rezepte Details (1 Objekt). In meinem Konsolenprotokoll sehen Sie, wie der JSON aussieht. Was auch immer ich tue, kann ich nicht am Frontend anzeigen, bitte helfen Sie, wo Sie können.Single-Array-JSON-Objekt wird nicht gedruckt (Ionic 2)
Typoskript
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;
});
}
}
Ich sehe keine Beschreibung irgendwo im zurückgegebenen Objekt. Du brauchst einen Schlüssel, um auf Details zugreifen zu können.id forst, um zu sehen, ob die ID gedruckt wird –
@AniruddhaDas Sorry, ich habe mich jetzt zu ID geändert (hatte andere Werte) Ich erhalte einen Fehler von ** Eigenschaft 'id' von undefined nicht gelesen * * – BA1995
@ BA1995. Es ist ein klassischer Fall von Async-Wert: Ihre Vorlage versucht, auf "details.id' ** zuzugreifen, bevor **" Details "tatsächlich definiert ist (sie wird NICHT sofort zugewiesen, da sie das Ergebnis einer asynchronen Kälte ist). Probieren Sie '{{details? .id}}' in Ihrer Vorlage aus. – AngularChef