Comment obtenir les paramètres de requête de l'URL dans angular-5?
Je suis en utilisant angulaire 5.0.3, je voudrais commencer mon application avec un tas de paramètres de requête. comme "/app?param1=bonjour¶m2=123". Chaque conseil donné dans Comment obtenir requête de paramètres à partir de l'url dans angular2? ne fonctionne pas pour moi.
Toute idées sur la façon d'obtenir les paramètres de la requête travail?
private getQueryParameter(key: string): string {
const parameters = new URLSearchParams(window.location.search);
return parameters.get(key);
}
Cette fonction privée m'aide à avoir mes paramètres, mais je ne pense pas que c'est la bonne voie à de nouvelles Angulaire de l'environnement.
[mise à jour:]
Mon application principale ressemble
@Composant({...})
l'exportation de la classe AppComponent implémente OnInit {
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
//would like to get query parameters here...
//this.route...
}
}
source d'informationauteur Lars
Vous devez vous connecter pour publier un commentaire.
Angulaire 5, la requête params sont accessibles par abonnement.l'itinéraire.queryParams.
Exemple: "/app?param1=bonjour¶m2=123"
alors que, les variables de chemin d'accès sont accessibles par des "cette.l'itinéraire.de l'instantané.params"
Exemple: "/param1/:param1/param2/:param2"
MISE à jour
C'est la solution la plus propre pour moi
son travail pour moi:
look plus d'options Comment obtenir requête de paramètres à partir de l'url dans angular2?
Suis tombé sur cette question lorsque je cherchais une solution similaire mais je n'ai pas besoin de quelque chose comme le niveau d'application de routage ou de plusieurs modules importés.
Le code suivant fonctionne très bien pour mon utilisation et ne nécessite pas de modules supplémentaires ou des importations.
http://localhost:4200/?param1=hello¶m2=123
sorties:Lorsque vous avez un itinéraire vide d'objet, c'est principalement en raison du fait que vous n'êtes pas à l'aide d'un routeur-prise de courant dans votre app.component.html.
Sans cela, vous ne serez pas en mesure d'obtenir un véritable parcours d'objet non vide de sous-objets, en particulier params & queryParams.
Essayez d'ajouter
<router-outlet><router-outlet>
juste avant l'appel de votre<app-main-component></app-main-component>
Avant cela, assurez-vous d'avoir votre requête param prêt en application de routage > export de la classe de l'Itinéraire utilisé par App composant :
Dernière chose, bien sûr, pour obtenir vos param, personnellement, je utiliser
this.route.snapshot.params.dynamicParam
où dynamicParam est le nom utilisé dans votre application-composant de routage 🙂Être prudent avec vos itinéraires. Un "redirectTo" va supprimer, supprimer tous les paramètres de la requête.
J'ai appelé mon principal composant avec les paramètres de la requête comme "/main?param1=a¶m2=b et supposons que mes paramètres de requête d'arriver dans la "ngOnInit()" de la méthode dans le principal composant avant de le rediriger transfert prend effet.
Mais c'est faux. La redirection est venu avant, déposer les paramètres de la requête à l'écart et d'appeler la ngOnInit() dans le composant principal sans les paramètres de la requête.
J'ai changé la troisième ligne de mes itinéraires à
et maintenant, mes paramètres de la requête sont accessibles dans les principaux composants ngOnInit et aussi dans le PageOneComponent.
Trouvé dans: Composants Parent se vide Params de ActivatedRoute
Fonctionné pour moi: