在 Angular 函数中路由

时间:2021-03-09 20:53:46

标签: javascript angular firebase

我在这里有一个登录功能,它允许用户登录并根据一条 firebase 信息(活动标志)是真还是假导航到某个组件(changepw)。即使我读的数据很好,当它为假时,我也没有得到这段代码的重定向。已尝试更改密码和 /changepw。帮助!

  login(email: string, password: string): void {
    
      this.firebaseAuth.signInWithEmailAndPassword(email, password)


      .then(value => {

        var userId = value.user.uid;
        this.db.database.ref(('users/' + userId)).get().then(value => {
          var userInfo = value.toJSON();
          console.log(userInfo['active'])

          if ( userInfo == false ) {
            this.router.navigate(['changepw']);
          } else {
            this.router.navigate(['']);
          }

        })
      })
      .catch(err => {
        console.log('Something went wrong:', err.message);
        alert(err.message);
      });
    }

2 个答案:

答案 0 :(得分:0)

如果你在 app-routing.module.ts 中有这样的东西

const routes : Routes = [
{path:"changepw",component abcComponent}
]

那么你应该在导航中添加前斜杠

this.router.navigate(['/changepw']);

在 appRouting 模块中分享路由,如果你在控制台有任何错误,也会分享

答案 1 :(得分:0)

我不确定你是否尝试过这种方法

this.router.navigate(['/', 'changepw']);

它的作用是,在 / 之后,它会附加 changepw 路由。

由于 this.router.navigate([]); 是一个数组,如果它有一个 / 或类似的东西,你需要分割路径。