[英]router navigate not working inside a subscribe (angular)
我面臨以下問題:
我調用我的 getByUsernameandPassword 方法並收到響應,但是當我嘗試將用戶重定向到 /zeiterfassung 路由時,它只顯示相同的 /login 頁面。我寫了一個 console.log() 來檢查它是否進入res,確實如此..有人可以告訴我我做錯了什么嗎?
零件:
public async anmelden() {
this.loading = true;
this._benutzerservice.getByUsernameAndPassword(this.benutzerFormControl.value, this.passwortFormControl.value)pipe(first()).subscribe(
res => {
this._router.navigate(['/zeiterfassung']);
},
err => {
console.log("a");
});
嘗試在訂閱之外路由,
public async anmelden() {
this.loading = true;
this._benutzerservice.getByUsernameAndPassword(this.benutzerFormControl.value, this.passwortFormControl.value) pipe(first()).subscribe(
res => {
this.redirect('/zeiterfassung');
},
err => {
console.log("a");
});
}
redirect(path) {
this.router.navigate([path])
}
默認情況下,導航方法將嘗試導航到 yourdomain.com/zeiterfassung
通過以下方式,它將導航到當前的 URL 例如 yourcurenturl/zeiterfassung
import { ActivatedRoute } from '@angular/router';
constructor(private route :ActivatedRoute)
public async anmelden() {
this.loading = true;
this._benutzerservice.getByUsernameAndPassword(this.benutzerFormControl.value, this.passwortFormControl.value)pipe(first()).subscribe(
res => {
this._router.navigate(['zeiterfassung'],{relativeTo:this.route});
},
err => {
console.log("a");
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.