Eu tenho um componente com uma dataTable que implementa a interface, a seguir:
declare interface DataTable {
headerRow: string[];
footerRow: string[];
dataRows: String [] []; //Uma matriz de strings com cada linha sendo uma linha da tabela.
}
Minha classe possui os atributos:
export class UserListComponent implements OnInit, AfterViewInit {
public dataTable: DataTable;
public userList: Object[]; //Array de objetos
...
Eu preencho as linhas da tabela com um array de objetos vindo de uma requisição http através da classe de serviços.
ngOnInit() {
this._userListService
.getList()
.subscribe(res => {
this.userList = res; // aqui é retornado pelo serviço uma lista de objetos
}, error => console.log(error),
() =>
{
//aqui eu transformo a lista de objetos numa matriz de linhas databela
let arr:string[][] = [];
this.userList.forEach(p => {
var arr2: string[] = [];
for(let key in p){
arr2.push(p[key].toString());
}
arr.push([].concat(arr2));
});
this.dataTable = {
headerRow: [ 'Name', 'Position', 'Office', 'Age', 'Date', 'Actions' ],
footerRow: [ 'Name', 'Position', 'Office', 'Age', 'Start Date', 'Actions' ],
dataRows: [].concat(arr) //Aqui eu associo a matriz transformada às linhas da tabela
}
}
);
E no template:
<tr *ngFor="let row of dataTable.dataRows">
<td>{{row[0]}}</td>
<td>{{row[1]}}</td>
<td>{{row[2]}}</td>
<td>{{row[3]}}</td>
<td>{{row[4]}}</td>
....
Quando acesso a página, aparece no console a seguinte mensagem de erro> ERROR TypeError: Cannot read property 'dataRows' of undefined
Onde eu errei?