2016-08-04 11 views
0

クエリ文字列に基づいてリダイレクトをサポートするようにルータを設定するにはどうすればよいですか? 以下のようなシナリオを考えてみましょう。 アプリはコード検証付きのメールを送信します。ユーザーはメールをクリックして特定のコンポーネントに移動したいと考えています。 (例:http://some.site.com/activate?code=XXX)はActivateComponentに、コードは入力として渡す必要があります。angular2 - 外部クエリパラメータに基づいてコンポーネントにルーティングする

どうすれば実現できますか?

答えて

2

あなたは、以下試してみてくださいすることができますが、あなたがこの道に行きたい、これまで、あなたは以下に似たいくつかの機能を持たせることができる

Route, 
{ path: 'activate', component: ActivateComponent } 

@Component({ 
    selector: 'activate', 
    template: ` 
    <h1>{{code | async}}</h1> 
    ` 
    }) 
export class ActivateComponent { 
    code = ""; 
constructor(private router: Router) {} 

ngOnInit() { 
    // Capture the code if available 
    this.code = this.router 
    .routerState 
    .queryParams 
    .map(params => params['code'] || 'None'); 
    } 
} 

と、ここで

gotoLink =() =>{ 
    let navigationExtras = { 
     queryParams: { 'code': 'XXX' } 
    }; 

    this.router.navigate(['/activate'], navigationExtras); 
    } 

Plunker!!

です

これが役立つことを願っています!

+0

[routerLink] = "['/ {code:' XXX '}]" –

+0

ありがとう、私は実際にはどのように自動リダイレクトすることができますか? AppComponent、私はhttp://some.url/some-component?code = mycodeに行っても、リクエストを取得する最初のものと仮定していますが、私はActivateComponentであなたの提案を実装しています。 –

関連する問題