How to get query-Parameter aus der URL in Eckigen 5?

Ich bin mit eckigen 5.0.3, beginnen möchte ich meine Anwendung mit einem Bündel von query-Parametern. wie "/app?param1=hallo&param2=123". Jeder Tipp gegeben in Wie get query-Parameter aus der url in angular2? funktioniert bei mir nicht.

Irgendwelche Ideen, wie man Abfrage-Parameter funktionieren?

private getQueryParameter(key: string): string {
  const parameters = new URLSearchParams(window.location.search);
  return parameters.get(key);
}

Diese private function hilft mir, um meine Parameter, aber ich glaube nicht, es ist der richtige Weg, neue Eckige Umgebung.

[update:]
Meine Haupt-app sieht aus wie
@Komponente({...})
export-Klasse AppComponent implementiert OnInit {

  constructor(private route: ActivatedRoute) {}

  ngOnInit(): void {
    //would like to get query parameters here...
    //this.route...
  }
}
  • Sind Sie Router verwenden? Wo ist die URL kommen?
  • Ja, eine ActivatedRoute. Ich aktualisiert meine Frage, um zu zeigen, wie mein Haupt-Komponente aussieht.
  • Können Sie auch zeigen Sie mir Ihre route konstant, wo Sie setup alle Strecken?
  • const appRoutes: Routen = [ {path: eine "Komponente: PageOneComponent}, {path: "", redirectTo: "/man", pathMatch: "voll"}, {path: "**", redirectTo: "/man"} ]; " Meine Route konstant. Ich würde gerne alle Parameter, die in der Haupt-app speichern Sie es in ein DTO, dann navigieren Sie zu einer anderen Seite. Die navigation funktioniert wie erwartet, aber ich bekomme die Abfrage-Parameter bei main nur durch meine 'getQueryParameter" - Funktion. Ich merke in deiner Frage gibt es etwas, was ich vergessen habe. Muss ich mark meine Parameternamen überall?
  • Ja, in den Routen, die Sie benötigen, Parameter zu definieren, wie gut. Wenn Sie überprüfen Sie die routing-docs auf eckig.io, können Sie sehen, wie Sie definieren die Parameter auf einer bestimmten route. So etwas wie dieses {path: 'abc/:param1', Komponente: componentClassName}
  • Sobald Sie dies getan haben, alles, was in der url nach Ihrer domain/abc, werden param1. Zum Beispiel localhost:4200/abc/100, in diesem Fall 100 param1, die Sie zugreifen können, wie Dmitri beantwortet hat unten
  • Beachten Sie auch, dass die ActivatedRoute Params-Objekt gibt eine beobachtbare, so dass Sie, die Sie abonnieren müssen, um Zugriff auf den param-Wert.
  • Ich habe rund 10 Parameter in einer anderen Reihenfolge. Daher muss ich mit named-query-Parameter. Und wie kann ich einstellen das mein main AppComponent zu erkennen, dass es 10 Parameter. Alle Proben, die ich gelesen und gesehen verwenden die einfachen "abc/:param1' Beispiel. Ich brauche ein '/?a="Wert"&b="anderer Wert"... wo die benannten parameter 'a' wird durch den Wert, den parameter 'b' wird 'anderer Wert' und so weiter.
  • Sollte dieser Artikel Ihr problem zu lösen. Winkel-2-Trainings-Buch.rangle.io/handout/routing/...

InformationsquelleAutor Lars | 2017-11-23
Schreibe einen Kommentar