angular 노트 경로 의 angular-router 를 자세히 설명 합 니 다.
프로젝트 생 성
ng new router --routing
\\ routing
\\ app-routing.module.ts
루트 의 기본 사용명칭.
간단 한 소개
Routes
경로 설정,어떤 URL 을 저장 하여 어떤 구성 요소 와 어떤 RouterOutler 에서 보 여 주 는 지 보 여 줍 니 다.
RouterOutler
HTML 에 루트 내용 을 표시 하 는 자리 표시 명령
Router
실행 중인 경로 대상 은 navigate()와 navigate ByUrl()방법 으로 지정 한 경로 로 탐색 할 수 있 습 니 다.
RouterLink
HTML 에서 내 비게 이 션 명령 을 설명 합 니 다.
ActivatedRoute
현재 활성 화 된 경로 대상 은 현재 경로 정보,경로 주소,경로 매개 변 수 를 저장 합 니 다.
경로 개체 그림
루트 기본 설정
const routes:Routes = [
{path:'',component:HomeComponent}, \\ path \
{path:'app',component:AdminComponent}
];
경로 어댑터 설정
{path:'**',component:Code404Component}
// , , angualr
HTML 안쪽 점프 링크
<a [routerLink]="['/']"> </a>
<a [routerLink]="['/app']"> </a>
<router-outlet></router-outlet>
js 안에서 경로 이동
<input type='button' value=' ' (click)="toApp()">
constructor(private router:Router){
}
//
toApp(){
this.router.navigate(['/app'])
}
경로 데이터 전달1.조회 매개 변수 에서 데 이 터 를 전달 합 니 다.
/app?id=2 => ActivatedRoute.queryParams[id]
//html
<a [routerLink]="['/app']" [queryParams]="{id:1}"> </a>
// js
private appId:number
constructor(private routerInfo:ActivatedRoute) { }
ngOnInit() {
this.appId = this.routerInfo.snapshot.queryParams['id']
}
2.경로 에서 데 이 터 를 전달 합 니 다.
{path:/app/:id} => /app/1 => ActivatedRoute.params[id]
//
<a [routerLink]="['/app',1]"> </a>
3.경로 설정 에서 데 이 터 를 전달 합 니 다.
{path:/product,component:Appcomponent,data:[IsProd:true]} => ActivatedRoute.data[0][IsProd]
파라미터 스냅 샷 과 파라미터 구독snapshot 은 매개 변수 스냅 샷 입 니 다.이 구성 요소 에 들 어 갈 때 단 추 를 누 르 면 이 경로 에 들 어 가 는 ngOnInit()방법 은 한 번 만 실 행 됩 니 다.이미 활성화 되 었 습 니 다.두 번 째 로 는 실행 되 지 않 습 니 다.
ngOnInit() {
this.appId = this.routerInfo.snapshot.queryParams['id']
}
subscribe 는 매개 변수 구독 입 니 다.이것 은 RxJs 에 속 하 는 것 입 니 다.
private appId:number
constructor(private routerInfo:ActivatedRoute) { }
ngOnInit() {
this.routerInfo.params.subscribe((params:Params) => {
this.appId = params['id']
})
}
경로 변경
{path:'',redirectTo:'/home',pathMatch:'full'},
하위 경로
{path:'home',component:HomeComponent,children:[
{path:'',component:IndexComponent}
]},
// HomeComponent, <router-outlet></router-outlet>
보조 경로
// html
<router-outlet></router-outlet>
<router-outlet name='aux'></router-outlet>
//
{path:'app',Appcomponet,outlet:'aux'}
경로 수비사용자 가 로그 인하 고 권한 이 있 을 때 만 들 어 갈 수 있 습 니 다.
다 중 폼 으로 구 성 된 마법사,예 를 들 어 등록 절차,조건 을 만족 시 켜 야 다음 경로 에 들 어 갈 수 있 습 니 다.
사용자 실행 동작 이 저장 되 지 않 았 습 니 다.떠 나 려 고 할 때 알림 을 진행 합 니 다.
명칭.
설명 하 다.
CanAxtivate
어떤 경로 로 탐색 처리
CanDeactivate
현재 경로 이탈 처리
Resolve
경로 가 활성화 되 기 전에 경로 데 이 터 를 가 져 옵 니 다.
1.CanAxtivate 의 사용
//
import {CanActivate} from '@angular/router'
export class LoginGuard implements CanActivate{
// false
canActivate(){
let isLOgin:boolean = true;
return isLOgin;
}
}
canActivate 는 하나의 배열 로 여러 개 를 받 을 수 있 습 니 다.각각 true 로 돌아 갈 때 만 허용 합 니 다.
// , canActivate
{path:'home',component:HomeComponent,children:[
{path:'',component:IndexComponent}
],canActivate:[LoginGuard]},
NgModule
providers:[LoginGuard]
2.CanDeactivate 사용
//
import {CanDeactivate} from '@angular/router'
import {AppComponent} from "../app.component";
/**
*
*
*/
export class OutGuard implements CanDeactivate<AppComponent>{
// component AppComponent
canDeactivate(component:AppComponent){
return window.confirm(' ?')
}
}
경로 설정 수정
{path:'home',component:HomeComponent,children:[
{path:'',component:IndexComponent}
],canActivate:[LoginGuard],canDeactivate:[OutGuard]},
providers:[LoginGuard,OutGuard]
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Angular에서 타사 스크립트 및 CSS 작업Angular 방식으로 회로도가 있는 외부 라이브러리를 추가하거나 모듈을 가져옵니다. Angular.json은 Angular 프로젝트의 모든 설정 파일이며 표준 JavaScript 및 CSS 파일과 함께 타사 라이브...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.