2016-09-29 63 views
10

假设我们有两条路线DashboardProfileDashboard具有动态标签功能,如Google spreadsheet。我想在Dashboard中进行一些交互(构建图表,可视化一些数据),创建制表符。现在,如果我路由到Profile,然后返回到Dashboard,我想查看以前在Dashboard中的这些选项卡中的内容。这意味着,我想维护客户端的状态。 AFAIK在组件之间进行路由时,它会重新创建组件。在使用角度2路由时是否可以制作电子表格?我需要使用路由,因为在我的应用程序中我必须使用LazyLoading功能。想要在Angular 2中路由时避免组件娱乐

那么应该是什么想法?我是新角度2.

+0

我认为这是可能从路由见。我读过这个博客,但并没有试图实现你寻求的这种高级路由。 https://vsavkin.com/angular-2-router-d9e30599f9ea#.2o8b488po – DNRN

+0

我读过博客,也读过了vsavkin的新书。但对我来说理解这个概念太复杂了。这就是为什么我寻求更好更容易理解:/ –

回答

12

当前组件被重复使用只有当只有路线参数改变,而停留在相同的路线。

如果路由改变,当新路由添加相同的组件时,组件被重新创建。

首选的解决方法是将模型保留在共享服务中,该服务在路由更改期间保持活动状态,并使用此服务中的数据恢复组件的以前状态。

有人提到,有计划支持路由器的自定义重用策略,但没有时间线时,这将成为可用。

更新定制重用策略

支持加入Angular2。

+0

但根据我的要求,我需要在'Dashboard'下创建多个选项卡(它可能甚至是100个选项卡,例如谷歌电子表格)。那么我该怎么做?你能否对'RouterState'发光? –

+0

我不认为'RouterState'是相关的。您可能需要查看辅助路线,并且不要离开当前路线以显示“配置文件”,而是将其显示为模式或类似模式。辅助路线的支持似乎还是有点受限(尽管他们还没有尝试过太多)。 –

+0

我提到了'Profile'作为例子:/但我的应用程序就像在Google电子表格中一样在选项卡中建立交互,并将这些选项卡存储在'Dashboard'中。我需要LazyLoading。我的要求很复杂,我在初始架构方面存在问题:( –