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

问题描述 投票:1回答:2

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

让我解释一下我是如何实施的:

  1. 我有两个组件forgot-passwordnew-password
  2. 当用户提交忘记密码表格时,他将获得email verification link
  3. 当用户点击该电子邮件link
  4. 它将去忘记密码.ts文件,然后在ngOnInit ajax调用将去。
  5. 从ajax响应中,如果成功数据将重定向到新密码

要么

  1. 它会在忘记密码页面本身中抛出错误

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

我的app.moduel.ts:

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

@NgModule({
  imports:      [
   BrowserAnimationsModule,
})

这个我的路线代码忘了密码.ts:

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

注意

  1. 当我在app.module.ts中评论这些BrowserAnimationsModule时,路由工作正常。但我需要这个BrowserAnimationsModule。!什么是替代解决方案。
  2. 如果没有形成外部链接(Gmail),routing工作正常。
ajax angular routing components angular4-router
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文件导航到新密码页面和错误情况导航到错误页面。

© www.soinside.com 2019 - 2024. All rights reserved.