需要刷新页面以使路由器导航再次起作用吗?

时间:2019-06-14 09:25:13

标签: angular angular2-routing

我有一个按钮可以重定向到帖子创建页面,但是由于某种原因,它只能运行一次。之后,我必须刷新页面才能使其再次工作。

运行Angular2,我相信我已经尝试了相对路径的整个过程。

  selectCreateData() {
    if (this.myView.link) {
      this.router.navigate([this.myView.link, 'create']);
    } else {
      this.createDataValue = {};
    }
  }
<button (click)="selectCreateData()">Create new Post</button>

控制台中没有错误,记录this.myView.link会返回localhost之后的整个路径。示例:/7f45c1b1-b0c4-4f2d-96fd-a786889fbae2/projects/2723ec7d-3d2b-41f3-b332-b2e384a8e03a/process/

1 个答案:

答案 0 :(得分:1)

要再次路由到“相同”路由,您需要结合使用onSameUrlNavigation和订阅路由器事件。

步骤1

  

onSameUrlNavigation定义路由器在收到对当前URL的导航请求时应采取的措施。 (请参阅https://angular.io/api/router/Router#properties

您将使用ExtraOptions的{​​{1}}参数应用此方法

步骤2

在您的组件类中收听.forRoot([routes], { onSameUrlNavigation: 'reload' }

NavigationEnd

示例:

有关完整的工作示例,请参见https://github.com/mateothegreat/ng-byexamples-routing-same