У меня есть экран заказа, где у меня есть список товаров для покупки.Перед каждым предметом у меня есть кнопка «плюс» и «минус» и поле ввода, где я могу указать количество товара, которое мне нужно купить.Я использую * ngFor для перебора массива и отображения элементов.Даже я создаю кнопку плюс, кнопку минус и текстовое поле ввода для этого элемента, используя эту * ngFor.Я использую двухстороннюю привязку данных для получения и установки данных в поле ввода.
Но проблема в том, что, когда я нажимаю кнопку увеличения, все элементы увеличиваются, а не этот конкретный элемент длякоторый я нажал кнопку плюс.Та же проблема и с кнопкой «минус».
Эта проблема связана с тем, что существует единственное свойство, которое связывается со всеми итерациями * ngFor.
<div class="row mt-2 mb-2" *ngFor="let item of listItems; let i = index">
<div class="col-sm-6">
<img src= "{{ item.imgUrl }}" alt="Item Img">
<span> {{ item.name.split(' ').slice(0,2).join(' ').replace(":", "").replace(",", "") }}</span>
</div>
<div class="col-sm-6 m-auto">
<button id="minus-image" class="minus mr-2" (click)="onMinusClick()"><img src="../../assets/icon/minus.png" alt="minus Img"></button>
<input type="text" id="buyNumInput" class="buyNum" [(ngModel)]="buyNumInput">
<button id="plus-image" class="plus ml-2" (click)="onPlusClick()"><img src="../../assets/icon/plus.png" alt="plus Img"></button>
<span class="price ml-3 text-right"> {{ item.price }} gold</span>
</div>
</div>
в файле .ts:
buyNumInput = 0;
onPlusClick(){
this.buyNumInput++;
}
onMinusClick(){
this.buyNumInput--;
}
Ожидаемый результат: При нажатии кнопки + или - этого элемента следует изменить входное значение этого элемента.Все остальные входные значения не должны изменяться.