stf-datatable
Version:
An Angular 4 dataTable, easily to implement and to costumize. You only need a JSON object and set what properties of your JSON you want to show
44 lines (34 loc) • 1.45 kB
text/typescript
import { Injectable } from "@angular/core";
import { DataColumnComponent } from "../data-column/data-column.component";
()
export class DataTableUtil {
columns: DataColumnComponent[] = [];
datatable: any[] = [];
homeData: any[] = [];
addColumn(column: any){
this.columns.push(column);
}
buildDataTableProperties(dataList: any[]) {
this.clearDataTable();
let fullColumn = {header: "", sortable: false, columnType: "", isVisible: true, columnIcon: "", iconField: "", values: [], icons: []};
this.columns.forEach(column => {
fullColumn.header = column.columnHeader;
fullColumn.columnType = column.columnType;
fullColumn.sortable = column.sortable;
fullColumn.isVisible = column.isVisible;
fullColumn.columnIcon = column.columnIcon;
dataList.forEach(data => {
fullColumn.values.push(data[column.columnField]);
});
dataList.forEach(data => {
fullColumn.icons.push(data[column.iconField]);
});
this.datatable.push(fullColumn);
fullColumn = {header: "", sortable: false, columnType: "", isVisible: true, columnIcon: "", iconField: "", values: [], icons: []};
});
return this.datatable;
}
clearDataTable(){
this.datatable = [];
}
}