【问题标题】:Routing within an Angular functionAngular 函数中的路由
【发布时间】:2021-03-09 20:53:46
【问题描述】:

我在这里有一个登录功能,允许用户登录并根据一条 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);
      });
    }

【问题讨论】:

  • 您能否发布您的路由文件以查看是否存在问题?

标签: javascript angular firebase


【解决方案1】:

如果你在 app-routing.module.ts 中有类似的东西

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 2019-07-14
      相关资源
      最近更新 更多