개발이 좋아서/Angular가 좋아서
[Front] - 로그인 및 회원가입(app-route, app.component)
zoaseo
2022. 10. 25. 14:45
1) app-routing.module.ts
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AuthGuard } from './auth.guard';
import { HomeComponent } from './component/home/home.component';
import { InfoComponent } from './component/info/info.component';
import { LogoutComponent } from './component/logout/logout.component';
import { SigninComponent } from './component/signin/signin.component';
import { SignupComponent } from './component/signup/signup.component';
const routes: Routes = [
{path: '', component: HomeComponent},
{path: 'signin', component: SigninComponent},
{path: 'signup', component: SignupComponent},
{path: 'info', component: InfoComponent, canActivate: [AuthGuard]},
{path: 'logout', component: LogoutComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
2)
app.component.html
<!-- // app.component.html -->
<div class="wrapper">
<mat-sidenav-container>
<mat-sidenav #sidenav role="navigation">
<mat-nav-list>
<a mat-list-item>
<mat-icon class="icon">input</mat-icon>
<span class="label">로그인</span>
</a>
<a mat-list-item>
<mat-icon class="icon">home</mat-icon>
<span class="label">홈</span>
</a>
<a mat-list-item>
<mat-icon class="icon">person</mat-icon>
<span class="label">내정보</span>
</a>
<a mat-list-item>
<mat-icon class="icon">dashboard</mat-icon>
<span class="label">게시판</span>
</a>
<a mat-list-item>
<mat-icon class="icon">input</mat-icon>
<span class="label">로그아웃</span>
</a>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<mat-toolbar color="primary">
<div fxHide.gt-xs>
<button mat-icon-button (click)="sidenav.toggle()">
<mat-icon>menu</mat-icon>
</button>
</div>
<div>
<a routerLink="/">
<mat-icon class="icon">home</mat-icon>
<span class="label">홈</span>
</a>
</div>
<div fxFlex fxLayout fxLayoutAlign="flex-end" fxHide.xs>
<ul fxLayout fxLayoutGap="20px" class="navigation-items">
<li *ngIf="!signService.isSignIn()">
<a routerLink="/signin">
<mat-icon class="icon">input</mat-icon>
<span class="label">로그인</span>
</a>
</li>
<li>
<a routerLink="/info">
<mat-icon class="icon">person</mat-icon>
<span class="label">회원정보</span>
</a>
</li>
<li *ngIf="!signService.isSignIn()">
<a routerLink="/signup">
<mat-icon class="icon">dashboard</mat-icon>
<span class="label">회원가입</span>
</a>
</li>
<li *ngIf="signService.isSignIn()">
<a href="/logout">
<mat-icon class="icon">input</mat-icon>
<span class="label">로그아웃</span>
</a>
</li>
</ul>
</div>
</mat-toolbar>
<main>
<router-outlet></router-outlet>
</main>
</mat-sidenav-content>
</mat-sidenav-container>
<footer>
<div>
<span><a href="https://daddyprogrammer.org">HappyDaddy's Angular Website</a></span>
</div>
<div>
<span>Powered by HappyDaddy ©2018~2019. </span>
<a href="https://daddyprogrammer.org">Code licensed under an MIT-style License.</a>
</div>
</footer>
</div>
app.component.ts
import { Component } from '@angular/core';
import { SignService } from './service/rest-api/sign.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'FrontEnd4';
constructor(public signService: SignService){
}
}