FrontEnd/Angular
라우터 파라미터
철철22
2018. 7. 4. 10:53
반응형
Angular Router는 Angular의 핵심기능 중 하나인데 여기서 파라미터를 보내는 방법을 작성하겠다.
라우터를 선언하는 부분은 다음과 같이 가정하고
{ path: 'move/:param', component: MoveComponent },
하면 template나 component에서는 다음과 같이 사용할 것이다.
template
<a [routerLink]="['/move', param]"> 이라하고 param값을 넣어주면 :param에 값이 전달되는 식이다.
<a routerLink="/move/:param">
component
this.router.navigate(['/move', param]);
그리고 받는쪽에서는 다음과 같이 사용할 것이다. (여러가지 방법이 있음 )
// 방법1
this.activatedRoute.params.subscribe(
params => {
this.sq = params['param'];
}
);
// 방법2
// this.activatedRoute.
// .subscribe(params => this.sq = +params.get('param'));
// 방법3
this.sq = +this.activatedRoute.snapshot.paramMap.get('param');
이런식으로 주고받는데 이런식으로 보내게 된다면 라우트를 할 때 url에 파라미터가 노출이 되는 단점이 있다.
예를들어 위의 소스는 아래의 url처럼 될 것이다
http://localhost:8080/move/34
이것은 일방적인 파라미터를 주고받는 과정이고 쿼리 파라미터를 보낼 때는 또 다르다.
쿼리파람 관련글은 다음에 작성하겠다.
참조 : https://angular-2-training-book.rangle.io/handout/routing/query_params.html
반응형