Issue
I want to loop a data like ngFor
in typescript can we do the same. I'll share my code below
<table id="pdfData" *ngFor="let hubxReport of hubxReportList; let i=index">
<tr>
<th>{{hubxReport.categoryName}} + "Test"</th>
</tr>
<tr>
<th>{{column}}</th>
</tr>
<tr *ngFor="let item of hubxReport.hubxDataItems">
<td></td>
<td>{{item.itemTitle}}</td>
<td>{{item.itemValue}}</td>
<td>{{item.itemUnit}}</td>
<td>{{item.normalRange}}</td>
</tr>
</table>
i want to implement the same way im looping in typescript
Solution
In my opinion ngFor
is the easiet way to do that. Anyway Op wants to to do it in typescript. You need to go through the hubxReportList
and create a table and append some tr
and td
. Then append the table
into your body by Renderer2
.
Here is a sample that I created:
export class AppComponent {
name = 'Angular';
hubxReportList = [
{categoryName: 'nameheader', categoryvalue:'valueheader' , hubxDataItems: [{itemTitle: 'title', itemValue: 'value'}]},
{categoryName: 'nameheader1', categoryvalue:'valueheader1', hubxDataItems: [{itemTitle: 'title1', itemValue: 'value1'}]},
{categoryName: 'nameheader2', categoryvalue:'valueheader2', hubxDataItems: [{itemTitle: 'title2', itemValue: 'value2'}]},
{categoryName: 'nameheader3', categoryvalue:'valueheader3', hubxDataItems: [{itemTitle: 'title3', itemValue: 'value3'}]},
]
@ViewChild('div') div: ElementRef;
constructor (private renderer: Renderer2){
}
addElement() {
this.hubxReportList.forEach(t=> {
const table: HTMLTableElement = this.renderer.createElement('table');
table.createTHead();
var hrow = table.tHead.insertRow(0);
var cell = hrow.insertCell(0);
cell.innerHTML = t.categoryName;
cell = hrow.insertCell(1);
cell.innerHTML = t.categoryvalue;
var tbody = table.createTBody();
t.hubxDataItems.forEach(sub =>{
var row = table.tBodies[0].insertRow(0);
var c = row.insertCell(0);
c.innerHTML = sub.itemTitle;
c = row.insertCell(1);
c.innerHTML = sub.itemValue;
})
this.renderer.appendChild(this.div.nativeElement, table)
})
}
Answered By - Alireza Ahmadi
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.