I am creating a dynamic table using Angular2. I have created an angular2 component with 2 pipes: 1st pipe gets the key from the JSON object which is used as the column for the table (working perfectly), whereas 2nd pipe must get the value from JSON object (not working) the result which I am getting is [object Object]
but not the value, sorry if this question was duplicated, I can't able to find any solution elsewhere in the WEB so am posting this, Please help me to resolve this issues
The below is my code for your reference
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
rowData=[
{"Sno":"1","Particulars":"Test","Amount":"1000"},
{"Sno":"2","Particulars":"Sample","Amount":"10000"}
];
}
Pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'getjsoncolKeys' })
export class KeysPipe implements PipeTransform {
transform(value, args: string[]): any {
let keys = [];
for (var i = 0; i < value.length; i++) {
for (let key in value[i]) {
if (keys.indexOf(key) === -1) {
keys.push(key);
}
}
}
return keys;
}
}
@Pipe({ name: 'getjsonvalues' })
export class getjsonValues implements PipeTransform {
transform(value, args:string[]) : any {
let values = [];
for(var i=0; i<value.length;i++){
for (let key in value) {
values.push(value[key]);
}
}
return values;
}
}
app.component.html
<table>
<tr>
<th *ngFor='let column of rowData | getjsoncolKeys'>{{column}}</th>
</tr>
<tr>
<td *ngFor='let row of rowData | getjsonvalues'>{{row}}</td>
</tr>
</table>