J'essayais de créer un composant simple avec mon projet angular-cli, qui charge le paramètre à partir d'une URL
@Component({
templateUrl: "./confirm-registration.component.html",
})
export class ConfirmRegistrationComponent implements OnInit {
constructor(private route: ActivatedRoute,
private router: Router) { }
ngOnInit() {
this.route.params.switchMap((params: Params) => {
return console.log("token:", params["registrationToken"]);
});
}
}
mais j'ai eu une erreur:
Échec de la compilation.
... / confirm-registration.component.ts (15,33): Argument de type "(params: Params) => void" n'est pas assignable au paramètre de type "(valeur: Paramètres, index: nombre) => ObservableInput <{}>". Tapez "vide" n'est pas assignable au type "ObservableInput <{}>".
J'utilise Angular dans la version 4.0.3. Où est-ce que j'ai commis une erreur?
Réponses:
1 pour la réponse № 1Je récupère le paramètre de requête avec ceci:
export class ConfirmRegistrationComponent implements OnInit {
private registrationToken: string;
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe(
(params) => {
this.registrationToken = params["registrationToken"];
}
)
1 pour la réponse № 2
Comme Dzejdzej a souligné dans son commentaire, vous devez retourner un observable. Cela semble avoir changé au cours des derniers mois (du moins, cela a été compilé la dernière fois que j'ai essayé, il y a quelques mois) et ils n'ont pas encore changé la documentation.
Donc, dans votre cas, vous pourriez simplement renvoyer le même constat:
ngOnInit() {
this.route.params.switchMap((params: Params) => {
console.log("token:", params["registrationToken"]);
return this.route.params;
});
}
0 pour la réponse № 3
Pour obtenir les paramètres de requête, je l’ai fait avec angular-2. Je ne suis pas sûr que cela fonctionne avec angular-4
constructor(private route: ActivatedRoute) {
}
ngOnInit() {
let urParam = this.route.snapshot.queryParams["urParam"];
}
J'espère que cela t'aides