Я занимаюсь разработкой простой формы на основе Angular6 и хочу создать поле ввода, подобное тем, которые я использовал в AWS.
Это фрагмент кода, который у меня есть:
<mat-form-field class="full-width">
<input matInput [(ngModel)]="enteredText" type="text" (keyup.enter)="addToArray()" name="text">
</mat-form-field>
И после этого мой массив текстов уже добавлен:
<ul>
<li *ngFor="let text of textArray; let i = index">
<span> {{ text }} </span>
<button mat-icon-button (click)="deleteTextFromArray(i)"><mat-icon>clear</mat-icon></button>
</li>
</ul>
У меня есть модель enteredText
, а также textArray
.
Вот функция addToArray()
:
addToArray() {
this.textArray.push(this.enteredText);
this.enteredText= '';
}
Вот функция deleteTextFromArray
:
deleteTextFromArray(index) {
this.textArray.splice(index, 1);
}
Проблема в том, что я не могу вставить в массив более 1 элемента. По какой-то причине после первого элемента каждая вставка запускает мою функцию удаления. Спасибо за помощь.