2017-06-01 199 views
0

我正在用TypeScript製作一個簡單的Angular(版本4)應用程序。從Angular URL中提取多個參數

我有一個看起來像這樣的URL: www.example.com/api/1/countries/Italy/

我想從這個URL 1Italy,並將其分配給變量。

我試着用ActivatedRoute這樣的:

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

idcountry是我的私有變量我想從URL中的賦值。但我不知道如何進行......

我還需要做什麼?

+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和國家,例如配置你的路由

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

+0

謝謝!但是如果我只有一個Component。這樣做是否有意義:'{path:'/ api /:id/countries /:country /',component:IndexPageComponent}'? – lapadets

+1

是的,它會工作。你可能不需要主要的正斜槓。 –

0

您可以使用DOCUMENT訪問URL並解析它。

component.ts

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

    constructor(@Inject(DOCUMENT) document: any) { 
    console.log(document.location.href); 
    }