Ich versuche HTML eine Liste von Daten anzuzeigen, in wie folgt:Angular * ngFor Array von Objekten Rückkehr [ERROR: nicht unterscheiden stützendes Objekt gefunden]
Home.ts:
this.key = 0
objects = {} // The correct setting was objects = [] thanks!
snapshot.forEach(doc => {
this.objects[this.key] = {
firstname: doc.id,
lastname: doc.data().lastname,
age: doc.data().age
}
this.key=this.key+1;
}
Daraus ergibt sich die folgende, wenn in JSON angezeigt:
console.log(JSON.stringify(this.objects));
// RESULT OF THE CONSOLE:
{
"0":
{
"firstname":"james",
"lastname":"bond",
"age":"87"
},
"1":
{
"firstname":"alex",
"lastname":"tali",
"age":"59"
}
}
Nun, wenn ich benutze:
console.log(this.objects[0].firstname);
// The Result displays:
james
Welches ist das richtige Verhalten! Wenn ich jedoch versuche, die Liste in HTML mit dem * ngFor anzuzeigen, gibt es mir den Fehler: Kann ein anderes unterstützendes Objekt nicht finden.
Hier ist mein Code in Home.html HTML/IONIC:
<ion-grid>
<ion-row>
<ion-col col-4>First Name</ion-col>
<ion-col col-4>Last Name</ion-col>
<ion-col col-4>Age</ion-col>
</ion-row>
<ion-row>
<ion-col col-4 *ngFor="let firstname of objects; let i = index">{{ objects[i].firstname }}</ion-col>
<ion-col col-4 *ngFor="let lastname of objects; let i = index">{{ objects[i].lastname }}</ion-col>
<ion-col col-4 *ngFor="let age of objects; let i = index">{{ objects[i].age }}</ion-col>
</ion-row>
</ion-grid>
Jeder, wie ich richtig die oben umsetzen können? logisch sollte es gut funktionieren! als ähnliche console.log gibt ein korrektes Ergebnis. Während ich eine Menge Forschung zu tun, stolperte ich über dieses Thema: https://github.com/angular/angular/issues/6392
Welche um ehrlich zu sein, ich bin mir nicht sicher, ob es zu meinem Problem passt oder nicht.
Vielen Dank!
Ihr erstes Element ist kein Array, auch wenn Sie die Schlüssel 0-n benennen. {} Ist ein Objekt (nicht in ngfor verwendet) und [] ist ein Array (was Sie in einem ngfor verwenden). –
Ja das war die Lösung !! – JamesAnd