如何以角度将数据从一条路线传输到另一条路线?

时间:2019-08-28 12:07:11

标签: javascript angular aws-amplify

我正在基于angular和aws-amplify建立用户注册工作流程。在我为新用户签名后,需要执行确认步骤,我想将用户重定向到确认组件,在该组件中他需要输入确认代码。

这是我创建新用户的signUp方法:

  signUp() {
    if (this.signUpForm.valid === true) {
      this.auth
        .signUp(this.signUpForm.get('email').value, this.signUpForm.get('password').value)
        .then(data => console.log(data))
        .catch(err => console.log(err));
    }
  }

我不想简单地记录要路由到确认页面的数据。所以最终结果应该是这样的:

  signUp() {
    if (this.signUpForm.valid === true) {
      this.auth
        .signUp(this.signUpForm.get('email').value, this.signUpForm.get('password').value)
        .then(data => this.router.navigate(['auth/confirm']))
        .catch(err => console.log(err));
    }
  }

为了处理注册确认,我需要访问data中代表新创建用户的某些内容。

如何使data对象在目标组件中可访问?

我找到了https://github.com/mlabieniec/AngularMaterialPWA/blob/master/partTwo/src/app/auth/confirm-code/confirm-code.component.ts

这样的解决方案

但是我不喜欢为此使用角度环境的方法。

2 个答案:

答案 0 :(得分:1)

这是一篇非常不错的文章,它介绍了几种在不同情况下传递数据的不同方法。 Chiffie提到的新方法未包括在内,这也是一种完全可行的方法。 https://angularfirebase.com/lessons/sharing-data-between-angular-components-four-methods/。使用服务共享数据是我个人解决的方法。

答案 1 :(得分:0)

https://stackoverflow.com/a/36835156/10179262 希望此答案有助于通过路由将数据共享到另一个组件。