Estoy enviando datos desde una página de componentes a un cuadro de diálogo.
Puedo recibir los datos, pero cuando trato de usarlos en ngFor me sale el error:
No se puede encontrar un objeto de soporte diferente '[objeto Objeto]' de tipo 'objeto'. NgFor solo admite el enlace a Iterables como Arrays
Revisé 9 artículos SO diferentes sobre este error, pero parece que todavía no puedo resolverlo. Mi código original era:
Mecanografiado:
(archivo de interfaz)
export interface IPersonInternalNotes { PersonID : number; Note : string; CreatedBy : number; CreatedByText : string; CreateDate : string; ModifiedBy : number; ModifiedByText : string; ModifiedDate : string; DeletedBy : number; DeletedByText : string; DeleteDate : string; }(archivo componente)
internalNotes: IPersonInternalNotes[] = []; @Inject(MAT_DIALOG_DATA) public data: IPersonInternalNotes[] //in constructor) this.internalNotes = this.data; //in ngOnInitHTML:
<tr *ngFor="let note of internalNotes"> <td>{{note.CreateDate}}</td> <td>{{note.CreatedByText}}</td> <td>{{note.Note}}</td> </tr>Así es como se ven los datos en el depurador:
He probado muchas variaciones como:
var myData = Object.keys(this.data).map((k) => this.data[k]); for (let index = 0; index < myData.length; index++) { this.internalNotes.push(myData[index]); }y
this.data.forEach(element => { this.internalNotes.push(element); });y cambiando el html a
<tr *ngFor="let note of internalNotes.data">pero recibió el error: "La propiedad 'datos' no existe en el tipo 'IPersonInternalNotes[]"
¿Qué me estoy perdiendo? No debo estar entendiendo algo sobre el tipo de datos.