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

时间:2017-12-28 05:00:44

标签: ajax angular routing components angular4-router

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

让我告诉我如何实施:

  1. 我有两个组成部分 forgot-password& new-password
  2. 当用户提交忘记密码表格时,他会收到email verification link
  3. 当用户点击该电子邮件link
  4. 它将转到 forgot-password.ts 文件,然后在ngOnInit ajax来电。
  5. 来自ajax响应,如果成功数据,它将重定向到新密码
    1. 它会在frogot密码页面中抛出错误
    2. 我的问题: 当我尝试使用外部链接(Gmail链接)在ajax响应之后从忘记密码 ts 文件导航到新密码时;它 添加组件数据,而不是将忘记替换为组件。

      我的 app.moduel.ts

      import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
      
      @NgModule({
        imports:      [
         BrowserAnimationsModule,
      })
      

      这是我的路线密码忘了密码。

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

      注意

      1. 当我在我的评论中评论这些BrowserAnimationsModule app.module.ts 路由工作正常。但是我需要这个BrowserAnimationsModule。什么是替代解决方案。
      2. 如果没有形成外部链接(Gmail),routing工作正常。

3 个答案:

答案 0 :(得分:4)

更新到最新版本的Angular

另外,试试:

@Html.DropDownList("TeamA", new List<SelectListItem> { new SelectListItem {  Text = "P1", Value = "1"}, new SelectListItem { Text = "P2", Value = "2", Selected = true} }, "--Select--", new { value = "2"})

答案 1 :(得分:1)

对我

setTimeout(() => {
   this.router.navigate(['']);
}, 0);

成功了

答案 2 :(得分:0)

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