Вам нужно использовать индекс строки, чтобы склеить строку. В настоящее время вы просто надеетесь, что переменная i
будет волшебным образом создана.
В файле component.ts моего решения я позволю моему HTML добавлять и удалять из простого массива.
component.ts
counter: number = 0;
rows = [];
addRow() {
this.counter++;
this.rows.push(this.counter);
}
deleteRow(row: number) {
this.rows.splice(row, 1);
}
Ключом к функции deleteRow
является то, что вам необходим доступ к текущему индексу в пределах *ngFor
. Для этого вы можете использовать let i = index
в *ngFor
для хранения текущего индекса в переменной i
.
компонент. html
<table>
<tr *ngFor="let row of rows; let i = index">
<td>{{row}}</td>
<td><button (click)="deleteRow(i)">Delete row</button></td>
</tr>
</table>
<button (click)="addRow()">Add row</button>
DEMO: https://stackblitz.com/edit/angular-7uwuye