2017-11-23 24 views
0

URLは以下のようなものであるならば、私はクエリパラメータを取得することができています:angular2のエンコードされたURLからクエリパラメータを取得する方法は?

http://localhost:4200/member/0?members=1&facility=1&field=name&criteria=contains&string=black

ブラウザがで$=?をコードする場合、私はクエリパラメータを取得することはできませんよURLの上、

エンコードされたURLは次のようになります。

http://localhost:4200/ccm/member/0/search/submitted%3Fmembers%3D1%26facility%3D1%26field%3Dname%26criteria%3Dcontains%26string%3Dblack

以下は、私がクエリパラメータを取得しようとしたコードの一部です(URLがエンコードされていない場合に正常に動作しますが、ブラウザはURLをエンコードしたときに失敗しました)。

this._activatedRoute.snapshot.queryParams; 

this._activatedRoute.queryParams.subscribe(value=> { 
    console.log('here'); 
    console.log(value); 
}); 

私は角バージョン2.3.1とルータのバージョンを使用しています。これは、uはURLからパラメータを取得する方法の例である3.3.1

+0

これはあなたがhttps://alligator.io/angular/query-助けかもしれ

URLは次のようなものがありますパラメータ/ –

+0

'コンストラクタ( プライベートルート:ActivatedRoute、 プライベートルータ:ルーター){} ngOnInit(){ .sub = this.route .queryParams .subscribe(params => { //クエリパラメータが指定されていない場合のデフォルト値は0です。 this.page = + params ['page'] || 0; }); } ' –

+0

@ KishanOza、それは動作しません。デフォルト値の取得0 –

答えて

2

です。

http://localhost:4200/products?order=popular

その後、コードは次のようになります::

import { ActivatedRoute } from '@angular/router'; 
import 'rxjs/add/operator/filter'; 

@Component({ ... }) 
export class ProductComponent implements OnInit { 
    order: string; 
    constructor(private route: ActivatedRoute) { } 

    ngOnInit() { 
    this.route.queryParams 
     .filter(params => params.order) 
     .subscribe(params => { 
     console.log(params); // {order: "popular"} 

     this.order = params.order; 
     console.log(this.order); // popular 
     }); 
    } 
} 
+0

フィルタに 'params.order'とは何ですか? URLからクエリーパラメータをすべて取得するのか、それとも1つだけからクエリーパラメータを取得するのですか? –

+1

のように、この 'http:// localhost:4200/products?order = popular'のようなURLがあれば分かりますか? –

+0

ええ、それを持っていますが、動作していません。私の場合、私は 'メンバー 'を持っています。ですから 'filter(params => params.member)'を使うとIDEは 'params'に' facility'が存在しないことを示しています。すべてのクエリパラメータを取得するために 'filter'を削除した場合、値はnullです –

関連する問題