2017-06-01 13 views
0

私は、TypeScriptを使用して簡単なAngular(バージョン4)アプリケーションを作成しています。URLから複数のパラメータを抽出します。

私はこのようになりますURLがあります。 www.example.com/api/1/countries/Italy/

をそして私は、このURLから1Italyを取得し、変数に割り当てたいです。

私はこのようなActivatedRouteで試してみました:idcountry私はURLから値を割り当てたい私のプライベート変数です

ngOnInit() { 
    this.router 
     .queryParams 
     .subscribe(params => { 
      this.id = +params['']; 
      this.country = +params['']; 
     }); 
} 

。しかし、私はどのように正確に進んで行くのかわかりません...

他に何が必要ですか?

+1

溶液[このポスト](https://stackoverflow.com/a/39146396/6036154)をご覧ください – embarq

+1

'1'と 'Italy'ではありませんクエリパラメータは、ルートパラメータです。 –

答えて

1

URLの例では、クエリパラメータは使用しません。だから、ActivatedRouteから値を取得するためのコードは次のようになります。

this.id = this.route.snapshot.paramMap.get('id'); 
this.country = this.route.snapshot.paramMap.get('country'); 

このコードは、例えば、IDや国という名前のparamsを使用してルートを設定していることを前提としてい

{path: 'api/:id', component: CompA} 
    ... 
{path: 'countries/:country', component: CompB} 

+0

ありがとう!しかし、私は1つだけのコンポーネントを持っている場合。 '{path: '/ api /:id/countries /:country /'、component:IndexPageComponent}'のようなものが意味を持ちますか? – lapadets

+1

はい、うまくいきます。あなたは先導スラッシュを必要としないかもしれません。 –

0

あなたは文書を使用してURLにアクセスし、それを解析することができます。

component.ts

import { DOCUMENT } from '@angular/platform-browser'; 

    constructor(@Inject(DOCUMENT) document: any) { 
    console.log(document.location.href); 
    } 
関連する問題