代码之家  ›  专栏  ›  技术社区  ›  Muhammad Ahsan

如何在角度上构造密码重置密码页的URL

  •  0
  • Muhammad Ahsan  · 技术社区  · 6 年前

    我为用户制作了一个页面,让他们在忘记密码时重置密码。用户将收到一封电子邮件,其中包含重置密码页面的链接以及重置令牌。

    密码页的URL应如下所示:

    http://localhost:4200/#/resetpassword?code=CfDJ8LBxIxG2Gf5IjZZG9p+g7oDJxTqYPL7OnGSOIblOksnbNniISOo/jKuZ8RkPriLpsCle5VNwVII5O+r9KPmos1WcwmKCB5mMbYeO/tVKxUiqymsEDFjvWEt0X+KfIQlPbe8fvTMtAaB07IG01vwT2UWn+CjEAYwcZgV6eKhPEP21U9lxLxeG8bE6SXMwninNvWI1lf6jm3Ia1MIDikqL9EC033AMIGlnjvEonbxV+Jb

    以下是我在路由器模块中的路由和重置密码页ngoninit()代码:

    const routes: Routes = [
      {path: 'resetpassword?code=/:code', component: ResetpasswordComponent}
    ];
    
      ngOnInit() {
        debugger;
        const param = this.route.snapshot.paramMap.get('code');
        if(param) {
          this.Code = param;
        }
      }
    

    我想知道:

    1. 如何在路由定义中设置此路由?
    2. 如何在重置密码页的ngoninit中读取code=后的代码值?

    任何人谁能指导我如何建立这样的路线和读取参数值?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Lia    6 年前

    路径应该是:

    {path: 'resetpassword', component: ResetpasswordComponent}
    

    导航:

    <a
        routerLink="/resetpassword"
        [queryParams]="{code: 'CfDJ8LBxIxG2Gf5IjZZG9p+g7oDJxTqYPL7OnGSOIblOksnbNniISOo/jKuZ8RkPriLpsCle5VNwVII5O+r9KPmos1WcwmKCB5mMbYeO/tVKxUiqymsEDFjvWEt0X+KfIQlPbe8fvTMtAaB07IG01vwT2UWn+CjEAYwcZgV6eKhPEP21U9lxLxeG8bE6SXMwninNvWI1lf6jm3Ia1MIDikqL9EC033AMIGlnjvEonbxV+Jb'}"
      >
      </a>
    

    在resetpassword组件中:

    constructor(private activeRoute: ActivatedRoute) {
        activeRoute.queryParams
          .subscribe((params) => 
            {
              console.log(params)
        });
      }
    

    检查 DEMO .