Сумма элементов массива таблицы материалов Angular

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

Привет всем :)

У меня проблема с angular и html, и я не могу найти способ ее решить. Допустим, у меня есть 2 интерфейса:

export interface Product {
    name?: string;
    price?: number;}

export interface Meal {
    name?: string;
    products?: Array<Product>;}

Я хочу создать таблицу следующим образом:

meal name | price
pizza     | 10    

Где 10 - сумма цен каждого продукта в еде.

Теперь я не могу найти способ суммировать эти цены в html. Возможно ли это или я должен сделать это в файле ts? Или, может быть, это нужно сделать в java-бэкэнде и спросить с остальными? Или, может быть, я должен добавить «totalPrice» к классу еды?

Это моя таблица:

    <ng-container matColumnDef = "name">
      <th mat-header-cell *matHeaderCellDef> meal name </th>
      <td mat-cell *matCellDef = "let element">
        {{element.name}}
      </td>
    </ng-container>

    <ng-container matColumnDef = "price">
      <th mat-header-cell *matHeaderCellDef> price </th>
        <td mat-cell *matCellDef = "let element">
          //<ng-container *ngFor = "let product of element.products">
          //{{product.price}}
          //</ng-container>
      </td>
    </ng-container>
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
1 353
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете сделать это, используя функцию Массив.уменьшить().

В вашем шаблоне:

<td mat-cell *matCellDef = "let element">
  {{calculateMealTotal(element.products)}}
</td>

И в файле компонента:

calculateMealTotal(products: Product[]): number {
  return products.reduce((acc, product) => acc + product.price, 0)
}

Это суммирует общую стоимость всех продуктов.

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