2017-12-15 3 views
0

Ich möchte bekommen Abfrage params von url Angular

http://localhost:4200/courses/5a0eb3d7f6b50c2589c34e57
id von URL greifen so in meinem app.module.ts Ich habe solche Route
{path:'courses/:id', component:CourseComponent, canActivate:[AuthGuard]}
und in meinem course.component.ts Ich habe den folgenden Code:

import { Component, OnInit } from '@angular/core'; 
import { ActivatedRoute } from '@angular/router'; 

@Component({ 
    selector: 'app-course', 
    templateUrl: './course.component.html', 
    styleUrls: ['./course.component.css'] 
}) 
export class CourseComponent implements OnInit { 

    id: String; 

    constructor(private route: ActivatedRoute) { } 

    ngOnInit() { 
    this.id = this.route.snapshot.queryParams["id"]; 
    console.log(this.id) 
    } 

} 

Eigentlich in meiner Entwicklerkonsole kann ich folgende sehen und wenn ich versuche ich folgendes erhalten console.log (params)

Antwort

0

Dies ist eine Route param und Sie sollten die Eigenschaft params

this.id = this.route.snapshot.params["id"]; 
verwenden
+0

wagen downvoters Kommentar – Aravind

2

Sie sollten rxjs verwenden.

this.route.params.pluck('id').subscribe(v => console.log(v)); 

bevorzugt, da .params könnte bald unerwün- schte werden:

this.route.paramMap.subscribe(paramMap => paramMap.get('id')); 

Alles in Dokumentation ist ... https://angular.io/guide/router#parammap-api