/ / Nie można odczytać parametrów z adresu URL trasy - kątowy, routing kątowy

Nie można odczytać parametrów z adresu URL trasy - kątowego, kątowego

Próbowałem utworzyć prosty komponent w moim projekcie angular-cli, który ładuje parametr z adresu 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"]);
});
}

}

ale dostałem błąd:

Nie udało się skompilować.

... / potwierdź rejestrację. składnik.ts (15,33): Argument typu „(params: Params) => void” nie można przypisać do parametru typu "(wartość: parametry, indeks: liczba) => ObservableInput <{}>”. Wpisz „void” nie można przypisać „ObservableInput <{}>”.

Używam Angulara w wersji 4.0.3. gdzie popełniłem błąd?

Odpowiedzi:

1 dla odpowiedzi № 1

Pobieram parametr zapytania za pomocą tego:

export class ConfirmRegistrationComponent implements OnInit {

private registrationToken: string;

constructor(private route: ActivatedRoute) {}

ngOnInit() {
this.route.params.subscribe(
(params) => {
this.registrationToken = params["registrationToken"];
}
)

1 dla odpowiedzi nr 2

Tak jak dzejdzej wskazał w jego komentarz, musisz zwrócić obserwowalne. Wygląda na to, że zmieniło się to w ostatnich miesiącach (przynajmniej skompilowało to, kiedy próbowałem kilka miesięcy temu) i nie zmieniły jeszcze dokumentów.

Więc w twoim przypadku możesz po prostu zwrócić to samo:

ngOnInit() {
this.route.params.switchMap((params: Params) => {
console.log("token:", params["registrationToken"]);
return this.route.params;
});
}

0 dla odpowiedzi № 3

Aby uzyskać parametry zapytania, zrobiłem to z angular-2. Nie jestem pewien, czy to działa z kątowym-4

constructor(private route: ActivatedRoute) {

}

ngOnInit() {
let urParam = this.route.snapshot.queryParams["urParam"];
}

Mam nadzieję że to pomoże