From 4f8a4084a55c54036c98f449f2a8f7ab0af6a070 Mon Sep 17 00:00:00 2001 From: Hung Pham Date: Sun, 19 Apr 2026 16:05:07 +0700 Subject: [PATCH] feat(challenge 22): refactor the code to use the router input strategy --- .../22-router-input/src/app/app.config.ts | 4 ++-- .../22-router-input/src/app/test.component.ts | 21 +++++++------------ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/apps/angular/22-router-input/src/app/app.config.ts b/apps/angular/22-router-input/src/app/app.config.ts index ed404941f..a7c1007b9 100644 --- a/apps/angular/22-router-input/src/app/app.config.ts +++ b/apps/angular/22-router-input/src/app/app.config.ts @@ -1,7 +1,7 @@ import { ApplicationConfig } from '@angular/core'; -import { provideRouter } from '@angular/router'; +import { provideRouter, withComponentInputBinding } from '@angular/router'; import { appRoutes } from './app.routes'; export const appConfig: ApplicationConfig = { - providers: [provideRouter(appRoutes)], + providers: [provideRouter(appRoutes, withComponentInputBinding())], }; diff --git a/apps/angular/22-router-input/src/app/test.component.ts b/apps/angular/22-router-input/src/app/test.component.ts index 747ab4483..29f37c3e0 100644 --- a/apps/angular/22-router-input/src/app/test.component.ts +++ b/apps/angular/22-router-input/src/app/test.component.ts @@ -1,21 +1,16 @@ -import { AsyncPipe } from '@angular/common'; -import { Component, inject } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { map } from 'rxjs'; +import { Component, input } from '@angular/core'; @Component({ selector: 'app-subscription', - imports: [AsyncPipe], + imports: [], template: ` -
TestId: {{ testId$ | async }}
-
Permission: {{ permission$ | async }}
-
User: {{ user$ | async }}
+
TestId: {{ testId() }}
+
Permission: {{ permission() }}
+
User: {{ user() }}
`, }) export default class TestComponent { - private activatedRoute = inject(ActivatedRoute); - - testId$ = this.activatedRoute.params.pipe(map((p) => p['testId'])); - permission$ = this.activatedRoute.data.pipe(map((d) => d['permission'])); - user$ = this.activatedRoute.queryParams.pipe(map((q) => q['user'])); + testId = input(); + user = input(); + permission = input(); }