diff --git a/apps/angular/21-anchor-navigation/src/app/app.config.ts b/apps/angular/21-anchor-navigation/src/app/app.config.ts index 66ab7f73f..d4e2a947f 100644 --- a/apps/angular/21-anchor-navigation/src/app/app.config.ts +++ b/apps/angular/21-anchor-navigation/src/app/app.config.ts @@ -1,6 +1,15 @@ import { ApplicationConfig } from '@angular/core'; -import { provideRouter } from '@angular/router'; +import { provideRouter, withInMemoryScrolling } from '@angular/router'; import { appRoutes } from './app.routes'; + export const appConfig: ApplicationConfig = { - providers: [provideRouter(appRoutes)], + providers: [ + provideRouter( + appRoutes, + withInMemoryScrolling({ + anchorScrolling: 'enabled', + scrollPositionRestoration: 'enabled', + }), + ), + ], }; diff --git a/apps/angular/21-anchor-navigation/src/app/foo.component.ts b/apps/angular/21-anchor-navigation/src/app/foo.component.ts index 6744c3662..51978dbae 100644 --- a/apps/angular/21-anchor-navigation/src/app/foo.component.ts +++ b/apps/angular/21-anchor-navigation/src/app/foo.component.ts @@ -1,13 +1,20 @@ import { Component } from '@angular/core'; +import { MatNavList } from '@angular/material/list'; +import { RouterLink } from '@angular/router'; import { NavButtonComponent } from './nav-button.component'; @Component({ - imports: [NavButtonComponent], + imports: [NavButtonComponent, RouterLink, MatNavList], selector: 'app-foo', template: ` - Welcome to foo page - Home Page -
section 1
+
+ +

Welcome to foo page

+ + Home Page + +
+
section 2
`, }) diff --git a/apps/angular/21-anchor-navigation/src/app/home.component.ts b/apps/angular/21-anchor-navigation/src/app/home.component.ts index 6ef9bc2b6..54aa29ef0 100644 --- a/apps/angular/21-anchor-navigation/src/app/home.component.ts +++ b/apps/angular/21-anchor-navigation/src/app/home.component.ts @@ -1,18 +1,32 @@ import { Component } from '@angular/core'; +import { MatNavList } from '@angular/material/list'; +import { RouterLink } from '@angular/router'; import { NavButtonComponent } from './nav-button.component'; @Component({ - imports: [NavButtonComponent], + imports: [NavButtonComponent, RouterLink, MatNavList, NavButtonComponent], selector: 'app-home', template: ` - Foo Page
- Empty - Scroll Bottom + +

Welcome to home page

+ + Foo Page + +
+ +
+ + Scroll Bottom + +
+
I want to scroll each - Scroll Top + + Scroll Top +
`, }) diff --git a/apps/angular/21-anchor-navigation/src/app/nav-button.component.ts b/apps/angular/21-anchor-navigation/src/app/nav-button.component.ts index 7a22c7f38..be240c5ce 100644 --- a/apps/angular/21-anchor-navigation/src/app/nav-button.component.ts +++ b/apps/angular/21-anchor-navigation/src/app/nav-button.component.ts @@ -1,17 +1,19 @@ -/* eslint-disable @angular-eslint/component-selector */ import { Component, input } from '@angular/core'; +import { RouterLink } from '@angular/router'; @Component({ - selector: 'nav-button', + selector: 'app-nav-button', template: ` - + `, host: { class: 'block w-fit border border-red-500 rounded-md p-4 m-2', }, + imports: [RouterLink], }) export class NavButtonComponent { - href = input(''); + routerLink = input(''); + fragment = input(null); } diff --git a/apps/angular/21-anchor-navigation/src/styles.scss b/apps/angular/21-anchor-navigation/src/styles.scss index 77e408aa8..007838499 100644 --- a/apps/angular/21-anchor-navigation/src/styles.scss +++ b/apps/angular/21-anchor-navigation/src/styles.scss @@ -2,4 +2,4 @@ @tailwind components; @tailwind utilities; -/* You can add global styles to this file, and also import other style files */ +html { scroll-behavior: smooth; }