import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; import { HotelComponent } from './hotel.component'; import { Hotel } from '../model/hotel'; import { FormsModule } from '@angular/forms'; import { Lang } from '../../currency/lang'; import { HotelService } from '../service/hotel.service'; import { Observable } from 'rxjs'; import { AsyncPipe, NgIf } from '@angular/common'; import { CurrencyComponent } from '../../currency/currency.component'; import { RouterLink } from '@angular/router'; import { StarComponent } from './star.component'; @Component({ standalone: true, template: `

Create Hotel

@for (hotel of matchingHotels | async; track hotel.id) {
{{ hotel.hotelName }}
{{ hotel.hotelName }}

} @empty {

no matching results for {{ search }}

} `, imports: [ FormsModule, HotelComponent, AsyncPipe, CurrencyComponent, RouterLink, StarComponent, NgIf, ], providers: [HotelService], selector: 'app-hotels', changeDetection: ChangeDetectionStrategy.OnPush, }) export class HotelsComponent { public currency: Lang = { name: 'de', code: 'de-DE', currency: 'EUR' }; public search: string = ''; private hotelService: HotelService = inject(HotelService); public matchingHotels: Observable = this.hotelService.getHotels(); public searchEvent(input: string) { this.search = input.toLowerCase(); } }