如何在同一组件上刷新路由更改时的组件?

时间:2018-01-04 09:32:43

标签: angular angular4-forms angular4-router

我正在开展一个角色4项目并陷入以下困境:

我有两步预订表格,用于预约。我有两个不同的行业可以说是行业A和行业B,现在当我正在预订时,可以说是行业A并转到第2步,假设我点击其他行业B(可通过旁边菜单访问)我仍然停留在第2步,我希望将页面重新加载到第1步,所以简而言之,我想访问具有不同路由的相同组件。

在技术语言中,Am在组件上,我希望在路由更改时刷新相同的组件。 如果有人知道请告诉我。提前谢谢!

2 个答案:

答案 0 :(得分:3)

试试这可能会解决您的问题

import { ActivatedRoute } from  '@angular/router';

export class xyz {
   constructor (private activatedRoute: ActivatedRoute) {

   }

   ngOnInit() {
       // calls form when route parms change,
       // the method calls when your route params will change
       this.activatedRoute.params.subscribe (res => {
          this.validateForm();
       }    
   }

   // build form
   validateForm () {

   }
}

答案 1 :(得分:0)

您好这是一个设计问题:只需创建一个Map对象,其状态为每个公司,如下所示:formProgress [company] [step]然后检查路由更改的值。然后在您的HTML中创建一个表单和所有步骤作为单独的组件,以便在每个HTML标记上您可以使用<div *ngIf="step===2">

之类的内容

对于路径更改检测,只需将window.href.location或变量中的上一个路径与activatedRoute params进行比较(此步骤需要您了解有关路由的更多信息)