在Angular2应用程序中(使用最终的1.x版本),我有一个包含多个选项卡的页面 . 父状态 /samples/{id}
具有每个选项卡的子路由 . 例如 . /samples/{id}/location
或 /samples/{id}/execution
.
示例数据是服务器API在一个请求中发送的一个大对象,包含所有选项卡的数据 . 所以我想只加载一次,当父路由被激活时(在组件代码中或者可能在解析中),然后在我的所有选项卡中读取它 .
有没有办法直接将父组件中的对象共享到子路径的组件?有点类似于Angular 1中继承的范围?
我知道我可以使用服务来共享对象,我只是好奇是否有内置的解决方案 .
我也知道可以从父路线获取路线参数,但在这种情况下它不会非常有用 .
1 回答
“内置解决方案”实际上是使用共享服务 .
还可以选择使用
@Input()
装饰器,但在您的情况下它不适用,因为您可以使用路径 . 这仅适用于父子关系,其中子在父组件内 .另一种选择是使用
Route Data Resolver
在激活路由之前解析数据,但由于数据已经加载,因此共享服务选项是您案例的最佳解决方案 .