簡體   English   中英

路由器導航在訂閱內不起作用(角度)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM