export class TestComponent implements OnInit {
models: Model[];
ngOnInit() {
// a bunch of Observable pipes and subscriptions one of which sets the models
}
add(): void {
let newModel = {...};
this.models.push(newModel);
}
}
И HTML:
<form *ngIf="models" (ngSubmit)="onSubmimt()" #modelForm="ngForm">
<div *ngFor="let model of models; last as isLast">
<input name="..." [(ngModel)]="model.name" />
<button *ngIf="isLast" (click)="add()">Add</button>
</div>
</form>
После того, как я ввел некоторые данные в форму и нажал кнопку Добавить, все ранее введенные данные исчезли. Я отладил его и обнаружил, что после Angular Framework вызывает drainMicroTaskQueue()
в zone.js
, данные исчезают.
Есть идеи?
РЕДАКТИРОВАТЬ: данные ушли из формы, но все еще существует в самой модели.
EDIT2: после каждого нажатия представление повторяет вновь добавленную модель и отбрасывает другие модели в массиве.