Angular2路由 – 路由更改时保持组件状态

这个问题在这里已经有一个答案:> Angular2 router 2.0.0 not reloading components when same url loaded with different parameters?1
我有一个应用程序,在路由后面有意见,我需要能够从路由更改时继续,但是在返回后,组件处于初始状态.

有没有办法保持组件的状态?

更新此答案仅适用于很久以前停止的路由器版本.

请参阅https://angular.io/docs/ts/latest/guide/router.html#!#guards,了解如何在当前路由器中执行此操作.

更新

现在,https://github.com/angular/angular/pull/13124的新路由器现在已经修复(角度2.3),允许提供自定义的重用策略.

有关示例,请参见https://www.softwarearchitekt.at/post/2016/12/02/sticky-routes-in-angular-2-3-with-routereusestrategy.aspx

原版的

如果您的组件实现CanReuse并返回true

routerCanReuse(next: ComponentInstruction,prev: ComponentInstruction) {
  return true;
}

那么组件被保存并重新使用,而不是被破坏并重新创建.

另一种方法是在重新创建组件时将数据保留在共享服务中并从中获取数据.

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...