import { AsyncPipe, NgFor, NgIf } from '@angular/common'; import { Component, Input, inject } from '@angular/core'; import { RouterLink, RouterLinkActive } from '@angular/router'; import { FakeServiceService } from './fake.service'; interface MenuItem { path: string; name: string; } @Component({ selector: 'app-nav', standalone: true, imports: [RouterLink, RouterLinkActive, NgFor], template: ` {{ menu.name }} `, styles: [ ` a.isSelected { @apply bg-gray-600 text-white; } `, ], host: { class: 'flex flex-col p-2 gap-2', }, }) export class NavigationComponent { @Input() menus!: MenuItem[]; } @Component({ standalone: true, imports: [NavigationComponent, NgIf, AsyncPipe], template: ` `, host: {}, }) export class MainNavigationComponent { private fakeBackend = inject(FakeServiceService); readonly info$ = this.fakeBackend.getInfoFromBackend(); getMenu(prop: string) { return [ { path: '/foo', name: `Foo ${prop}` }, { path: '/bar', name: `Bar ${prop}` }, ]; } }