首页 文章

Angular路由器附加组件数据而不是替换组件

提问于
浏览
1

首先,我尝试了这个答案,但没有找到我的解决方案:Similar question

让我告诉我如何实施:

  • 我有两个组件 forgot-passwordnew-password

  • 当用户提交忘记密码表格时,他将获得 email verification link .
    用户点击该电子邮件时

  • link

  • 它将转到 forgot-password.ts 文件然后在 ngOnInit ajax 调用将去 .

  • 来自ajax响应如果 success 数据它将重定向到 new-password

or

  • 它将在frogot密码页面中抛出 error

My issue: 当我尝试使用外部链接( Gmail link)在ajax响应之后从忘记密码 ts 文件导航到新密码;它附加组件数据,而不是用 new 组件替换 forgot .

我的 app.moduel.ts

import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  imports:      [
   BrowserAnimationsModule,
})

And this my route code forgot-password.ts

if(result.data == "failure")    {
// failure no data
}
else {
// success data
this._router.navigate(['new-password']);
}

NOTE

  • 当我在 app.module.ts 中对这些 BrowserAnimationsModule 发表评论时,路由工作正常 . But 我需要这个 BrowserAnimationsModule . !什么是替代解决方案 .

  • 如果没有形成外部链接(Gmail), routing 正常工作 .

2 回答

  • 4

    更新到最新版本的Angular

    另外,尝试:

    if(result.data == "failure")    {
        // failure no data
     }
     else {
       // success data
       this.zone.run(() =>{
          this._router.navigate(['new-password']);
       });
     }
    
  • 0

    您可以在 email verification link 中提供新密码页面的路由链接,而在新密码组件的构造函数中,您可以使用您的ajax调用,而不是从忘记密码ts文件导航到新密码页面和错误情况导航到错误页面 .

相关问题