import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, inject, Input, } from '@angular/core'; import { CurrencyPipe } from './currency.pipe'; import { CurrencyService } from './currency.service'; import { Product } from './product.model'; @Component({ standalone: true, selector: 'tr[product-row]', template: ` {{ productInfo.name }} {{ productInfo.priceA | currency | async }} {{ productInfo.priceB | currency | async }} {{ productInfo.priceC | currency | async }} `, imports: [AsyncPipe, CurrencyPipe], providers: [CurrencyService], changeDetection: ChangeDetectionStrategy.OnPush, }) export class ProductRowComponent { protected productInfo!: Product; @Input({ required: true }) set product(product: Product) { this.currencyService.updateCode(product.currencyCode); this.productInfo = product; } currencyService = inject(CurrencyService); }