Минус количественная база по идентификатору

#javascript #html #angular #typescript #angular7

#javascript #HTML #угловой #typescript #angular7

Вопрос:

На самом деле я хочу минус количество, основанное на идентификаторе.Когда пользователь нажимает кнопку на ‘A’, просто количество ‘A’ должно уменьшаться на 1. Этот демонстрационный код stackblitz

HTML

 <p *ngFor="let item of arrayOfArray"> 
  Name: {{item.name}} Quantity: {{item.quantity - currentIndex}} <button (click)="addItem(item)">minus Quantity</button>
</p>
  

Компонент

 public currentIndex = 0;
  arrayOfArray = [
    {id: '1', name: 'A', quantity: '12'}, 
    {id: '2', name: 'B', quantity: '29'},
    {id: '3', name: 'C', quantity: '21'}, 
    {id: '4', name: 'D', quantity: '11'}
  ]

  addItem(val){
    if(val.id){
      this.currentIndex  = 1;
    }
  }
  

Ответ №1:

Вы делаете это неправильно. проверьте этот демонстрационный код

для html

 <p *ngFor="let item of arrayOfArray"> 
  Name: {{item.name}} Quantity: {{item.quantity}}
  <button (click)="minusItem(item)">minus Quantity</button>
</p>
  
   minusItem(val){
    if(val.id){
      for (let ele of this.arrayOfArray) {
         if (ele.id === val.id){
          ele.quantity--;
          break
        }
      }
    }
  }