Вычислить строки с установленным флажком и отобразить в другой таблице angular

У меня есть две таблицы полностью Table1 и table2. Table1 заполняется данными из сервиса. В таблице 1 у меня есть такие столбцы, как количество, цена и флажок. В столбцах флажков у меня есть флажки в качестве значений. Количество и цена имеют число как значения В таблице 2 у меня есть столбцы с именами Кол-во и Цена.

Фото таблицы 1 и 2

Теперь скажем, если я щелкну флажок в строке 1,2,4 в таблице 1. Поэтому, если вы возьмете столбец Qty в таблице 1, все значения Qty в строке 1,2,4 должны быть добавлены и показаны в столбце количества в таблице 2 как одно значение. То же самое касается столбца цены. (Пример 6,4,2 - это значения столбца количества в строке 1,2,4, поэтому добавьте (6+4+2) и покажите итог в первой строке столбца количества в таблице2.

Я пытаюсь сделать это в течение двух дней, но не могу найти решение. Я знаю, что это очень сложно. Пожалуйста, помогите мне, если вы можете.

STACKBLITZ: https://stackblitz.com/edit/angular-ivy-coydaf?file=src%2Fapp%2Fapp.component.ts

🤔 А знаете ли вы, что...
JavaScript можно использовать для манипуляции DOM (Document Object Model), что позволяет изменять содержимое и структуру веб-страницы.


377
1

Ответ:

Решено

Добавьте переменную на уровне компонента, которая будет содержать общее количество.

totalCount: any;

Инициализируйте его в событии ngOnInit.

this.totalCount = {qty:0,value:0};

в событии Checkbox onChange вызывается функция ниже, которая будет добавлять/вычитать на основе проверенного статуса.

getTotal(event,item) {
    if (event.target.checked) {
      this.totalCount.qty =  this.totalCount.qty + item.qty;
      this.totalCount.value =  this.totalCount.value + item.value;
    } else {
      this.totalCount.qty =  this.totalCount.qty - item.qty;
      this.totalCount.value =  this.totalCount.value - item.value;
    }
}

Отобразите значение следующим образом.

<tr *ngIf = "!(totalCount.qty == 0 || totalCount.value == 0)">
    <td>1</td>
    <td>{{totalCount.qty}}</td>
    <td>{{totalCount.value}}</td>
</tr>

Рабочий стекBlitz: -

https://stackblitz.com/edit/angular-ivy-349pwn?file=src%2Fapp%2Fapp.component.html