Проблема с разделением количества для каждого продукта Angular4

Я разрабатываю приложение для покупок с элементами списка и корзиной Я сделал переменную под названием приращение, которая считает 1 каждый щелчок по кнопке добавления.

Первая проблема заключается в том, что я просматриваю массив из API, и мне нужно, чтобы каждый элемент имел собственную переменную приращения, чтобы подсчитать все в элементе корзины. Потому что, когда я нажимаю на значок плюса, учитывается каждый элемент, мне нужно их разделить

Вторая проблема, как показать общее количество элементов внутри дочернего компонента? Потому что я попытался показать его со статическим значением в дочернем компоненте через локальную переменную, и он не привязался.

Мой HTML-код родителя:

<div class = "container">
<div class = "row">
<div class = "col-md-12 col-sm-12 col-xs-12 text-center">
  <div class = "col-md-12 col-sm-12 col-xs-12">
    <app-cart #total>
     total items are:   {{total}}       
    </app-cart>
  </div>
  <ul *ngIf = "items">
    <li class = "padding-add" *ngFor = "let item of items; let i of index">
      <div class = " col-md-12">
        <div class = "col-md-4 col-sm-4 col-xs-12 padding-add">
          <img src = "{{item.imageUrl}}" width = "200">
        </div>
        <div class = "col-md-6 col-sm-6 col-xs-12 padding-add">
          <h4>{{item.id}}- {{item.name}}</h4>
          <h6>Material: {{item.service1}}</h6>
          <h6>Options: {{item.service2}}</h6>
          <h6>Price: {{item.service3}} $</h6>
        </div>
        <div class = "col-md-2 col-sm-2 col-xs-12">
          <button (click) = "addToCart()" class = "btn-6 fa fa-plus"></button>
          <span>{{increment}}</span>
    <button (click) = "removeFromCart()" class = "fa fa-minus btn-6"></button>
  </div>
      </div>
    </li>
  </ul>
</div>
</div>
</div>

Родительский TS:

export class ListComponent implements OnInit {
constructor(
private getItemsService: JustCleanServiceService,
private spinner: NgxSpinnerService
) { }
items:any = {};
increment: number = 0;
total: number = 8;  
ngOnInit() {
this.getItems();
}
getItems() {
this.spinner.show() 
this.getItemsService.getItems().subscribe(
  res => {
    console.info(res)
    if (res) {
      this.items = res;
      this.spinner.hide();          
    }
  }
)
}
addToCart() {
this.increment++;
this.increment + this.total;
console.info(this.increment);
}
removeFromCart() {
this.increment--;
if (this.increment == -1) {
  this.increment++;
}
}
}

Дочерний TS:

export class CartComponent implements OnInit {
total: number;
constructor() { }
ngOnInit() {
}
}

Дочерний HTML:

<p>total items are:    {{total}}</p>

Пожалуйста, помогите мне с обоими проблемами, с которыми я столкнулся

Ссылка на API: http://5a12745f748faa001280a746.mockapi.io/v1/stores/item

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для вашей второй проблемы используйте @Input Contemporary для привязки переменных. Об этом читайте здесь ->

https://angular.io/api/core/Input

Ваша первая проблема мне не очень ясна, но addToCart () выглядит неоднозначно. Здесь вы добавляете итоговое значение и приращение, но нигде не назначаете его, почему? Возможно, ваша проблема кроется в этой строке, а может быть, это сделано намеренно.

Я попробую ввести ввод, первая проблема, я приведу вам пример, потому что я помещаю счетчик приращения внутри цикла, поэтому, когда я нажимаю кнопку добавления на продукте, все продукты увеличиваются на единицу, поэтому мне нужно посчитайте каждого, вы поняли?

Mohamed Wahshey 26.06.2018 10:10

Спасибо за вашу помощь

Mohamed Wahshey 26.06.2018 10:10

Еще не зашел на свой ноутбук, попробую через два часа и обновлю вас

Mohamed Wahshey 26.06.2018 12:10

Другие вопросы по теме