【问题标题】:Angular Inherit component角度继承组件
【发布时间】:2021-07-16 10:39:31
【问题描述】:

你会怎么做?

我创建了一个登录组件<app-customer-login>,它会在您成功登录后将您重定向到您的帐户页面。

到目前为止一切顺利。

我还有一个结帐流程,用于检查您是否已登录。如果没有,我喜欢显示相同的登录组件。因此用户可以立即登录。如果我在结帐流程中实现<app-customer-login>,那么一旦成功登录,用户将被重定向到帐户页面。

如果用户从不同的页面(结帐页面)登录,我如何将用户重定向到不同的页面。

我能否以某种方式确定哪个页面实现了<app-customer-login>

我了解警卫的使用。 "issue" 是我使用带有步骤的向导进行结帐流程。

  1. 显示购物车

  2. 检查用户是否登录。如果不是我喜欢使用<app-customer-login> 组件,但它不应该将用户重定向到帐户页面,而是返回向导。

  3. 地址

  4. 付款

【问题讨论】:

  • 我不确定我是否正确,但据我了解您的问题,您需要决定是否需要将用户转移到登录,如果用户已经登录,那么只需转移到帐户即可angular 提供了对您有帮助的防护内置codecraft.tv/courses/angular/routing/router-guards
  • 如果我没有正确理解您的问题,请告诉我
  • 我试图编辑原始问题,更明确
  • ok 表示如果用户未登录,则将用户重定向到登录页面,当用户再次登录时,您需要转到向导而不是帐户,我是对的吗?对于同样的事情,您可以保存诸如 ComeToLoginFrom 值应该是“Origin”或“Wizard”之类的信息。成功登录后检查此 cookie 值的值,如果它是向导,则需要选择第三个向导。
  • 参考下面已经提出的问题可能对您有用。 stackoverflow.com/questions/40020703/…

标签: angular


【解决方案1】:

我会亲自在您的登录组件上添加一个 if 语句,以检查用户来自何处,从而将他们重定向到购物车或您要发送的任何地方。

【讨论】:

  • 好的,但是我怎么知道用户来自哪里?或者哪个组件实现了
【解决方案2】:

我现在这样解决了:

      if(this.router.url.indexOf('/login')) {
        this.customerAccountService.redirectToAccount();
      } else {
        this.customerAccountService.redirectToWizard();
      }

也许还有更好的选择?

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 2020-05-20
    • 2013-09-18
    • 2013-10-07
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2019-04-12
    相关资源
    最近更新 更多