Erste url id mit params und ActivatedRoute Winkel-2

Ich versuche zu bekommen eine uuid aus der URL (die aussieht wie https://something.com/card?id=wo uuid geht) und verwenden Sie dann die uuid zu bekommen, eine http-get-Anfrage.

Jetzt habe ich meine app.Komponente.ts sieht so aus:

private cardUuid: string;

constructor(private service: AppService,
            private route: ActivatedRoute){
            let sub = this.route.params.subscribe((params: Params) => {
                  this.cardUuid = params['id'];
                  console.log(this.cardUuid)
                })

}


ngOnInit(){
  this.service.browserUuid = 'http://address/cards?uuid=' + this.sub.cardUuid;
    console.log(this.sub.cardUuid)

}

Meine Konsole die logs wieder als undefiniert. Ich Frage mich, warum das der Fall ist? Ist die Methode für das abrufen der uuid falsch oder ist der Aufruf timing falsch?

Jede Hilfe/Tipps/Anregungen würde sehr geschätzt.

Update:
nach einem Vorschlag von @Alexander Staroselsky, ich umstrukturiert meiner Methode der Aufruf der uuid aus der url pro Winkel.io-docs.

app.Komponente.ts:

card: Card = {};

ngOnInit() {
 this.route.paramMap
  .switchMap((params: ParamMap) =>
    this.service.fetchCardUuid(+params.get('id')))
  .subscribe(
    card => {
      this.card = card;
      this.getVenueUuid(this.card);
    });
}

app-service.ts:

public UuidUrl = 'http://websiteaddress/cards?uuid='

constructor(private http: Http){}


private extractData(res:Response) {
  let body = res.json();
  return body || [];
}

fetchCardUuid(id: number) {
  return this.http.get(this.UuidUrl + id)
    .map(this.extractData)
}

Jedoch bin ich immer noch nicht die app zu laden, die richtige Verwendung der Uuid wird von der folgenden Url abgerufen. In der Konsole Netzwerk zeigt eine get-Anforderung-Karte?uuid=0. Wieder, jede Hilfe wäre sehr geschätzt werden.

  • Das url-Muster http://address/cards?uuid= ist mit queryParams, nicht params. Sie benötigen this.route.queryParamMap statt this.route.paramMap. paramMap werden keine Werte auf, wie die url aufgebaut wird.
  • Das funktionierte! Ich bin mir sicher, Sie sind sich bewusst, jetzt, mein Verständnis von queryParam versus param fehlt, um das Mindeste zu sagen. Wir entschuldigen uns für, die. Aber das ziehen die id aus der URL jetzt. DANKE!!!
  • Bitte posten Sie die Lösungen als Antworten, die nicht als updates für die Frage. Dies ist um Verwirrung zu vermeiden. Danke.
  • Dieses answer eine gute Beschreibung params vs queryParams im Kontext der Allgemeinen RESTful-API-Anwendungen. Meine ursprüngliche Antwort hatte queryParams verwiesen. Froh zu hören, es hat geklappt! Bitte markieren Sie die Antwort, die Ihnen helfen, die Lösung.
Schreibe einen Kommentar