执行router.navigate后刷新组件

mer*_*ino 8 ag-grid angular2-routing angular

我正在尝试使用以下方法从一个组件导航到另一个组件:

this.router.navigate(['/path/'], '_blank');
Run Code Online (Sandbox Code Playgroud)

问题是我导航到的组件已经创建,当我导航回页面时,它的ngOnInit方法没有被执行.我正在尝试刷新页面上显示的数据.这是在目标组件的ngOnInit函数中:

this.sub = this._DataService.getData().subscribe(data=> {
        this.data= data;
    });
Run Code Online (Sandbox Code Playgroud)

如何告诉目标组件,在进行导航时,页面上的数据总是会刷新?

我正在使用Ag-Grid在表格中显示数据.在NgOnInit函数中:

this.gridOptions.rowData = this.data;
Run Code Online (Sandbox Code Playgroud)

我最初来自的组件是一个添加新对象的表单.提交该对象后,它应重定向到网格并显示新对象.这就是网格应该更新其数据的原因,但是由于某种原因,只有当我通过网格中的上下文菜单操作而不是导航手动刷新它时才会这样做.

表单中的提交函数如下所示:

 onSubmit(data) {
    this._DataService.addData(data.value).subscribe();
    this.router.navigate(['/data/']);
}
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 7

如果您导航到相同的路径并且仅更改参数值,请将初始化代码移出constructor并从中调用它constructor并在路径参数更改时:

constructor(private route:ActivatedRoute) {
  route.params.subscribe(val => this.initialize())
}
Run Code Online (Sandbox Code Playgroud)