Ну, нет ничего плохого в вашем коде.Просто внесите некоторые изменения в ваш код.
html
<form>
<div class="form-group">
<div class="row">
<div class="col-md-4" *ngFor="let t of textarea; let in=index; trackBy: trackByFn">
<textarea class="form-control" id="" rows="5" [(ngModel)]="textarea[in]" [ngModelOptions]="{standalone: true}" placeholder="Type.."></textarea>
</div>
<button (click)="add()">Add input</button>
</div>
</div>
</form>
ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
textarea = [];
constructor() {
}
trackByFn(index, item) {
return index; // or item.id
}
add() {
this.textarea.splice(this.textarea.length, 0, '');
}
ngOnInit() {
this.textarea = ['', '', ''];
}
}
Использование только что пропустилtrackBy
угловая функция.
Вот Stackblitz