2016-08-10 5 views
1

Angular 2 RC4でクエリパラメータを取得するにはどうすればよいですか?私はドキュメントを試してみて、何の意味もない。Angular 2 RC4でクエリパラメータを取得する方法

ngOnInit

http://localhost:3000/models/initials/mid_c1e1c31e6eff42f1982af4124a823b36?test=4 

は、どのように私は、パラメータtestの値を得るのですか?

private sub: Subscription; 
ngOnInit() { 

    this.sub = this.route.params.subscribe(params => { 

     console.log(params); 
     let id = params['test']; 
     console.log(id); 

    }); 

} 

これは私が、私は、クエリがPARMS取得したいルートに移動する方法です:

this._router.navigate(['models/initials/'+model_id+'?test=4']); 

答えて

3
constructor(private route:ActivatedRoute) {} 

ngOnInit() { 
     this.route.params.map(params => params['test']) 
      .subscribe(id => { /* do what you want with the id */ }); 
+0

私は – Tampa

+0

@Tampaをすることができます{/ *(ID)ID * /にconsole.logであなたがやりたい}ないとき、私は未定義取得しますデバッグして、あなたのroute.paramsに何が入っているかを確認してください。 – Terje

+0

私のURLは私が投稿したもののように見えます。私がparams ['id']に変更した場合、私はmid_c1e1c31e6eff42f1982af4124a823b36を取得し、その部分が動作するようにします。私はちょうど得ることができない?テスト= 4。そのroute.paramオブジェクトを見ると、URLウィンドウにもかかわらずそこには表示されません。 – Tampa

-1

あなたはあなたがActivatedRouteを使用する必要がRouteSegment

routerOnActivate(curr: RouteSegment) { 
    this.userName = curr.getParam('userName'); 
    this.projId = curr.getParam('projId'); 
    } 
0

を試してみました:

private sub: Subscription; 


constructor(private router: Router, private activatedRoute: ActivatedRoute){} 

ngOnInit() { 
    this.sub = this.activatedRoute.params.subscribe(
     (param: any) => this.test = param['test'] 
) 
} 
4

OPではクエリパラメータについて尋ねましたが、正しい方法はqueryParamsオブジェクトをルートから外して使用することです。

ngOnInit() { 
    this.sub = this.route.queryParams.subscribe(params => { 
    console.log(params); 
    let id = params['test']; 
    console.log(id); 
}) 
} 

これは、他の回答が参照するparamsオブジェクトとは異なります。

また、NavigationExtrasオブジェクトを使用してクエリ文字列に正しく追加することをお勧めします。「クエリパラメータとフラグメント」セクションのhttps://angular.io/docs/ts/latest/guide/router.html

-1

ではJavaScriptを使用して、この方法で行うことができます。

(new URL(location)).searchParams.get("parameter_name") 
関連する問題