首页 文章

Angular2路由器:如何从父路由到子路由共享一个值?

提问于
浏览
3

在Angular2应用程序中(使用最终的1.x版本),我有一个包含多个选项卡的页面 . 父状态 /samples/{id} 具有每个选项卡的子路由 . 例如 . /samples/{id}/location/samples/{id}/execution .

示例数据是服务器API在一个请求中发送的一个大对象,包含所有选项卡的数据 . 所以我想只加载一次,当父路由被激活时(在组件代码中或者可能在解析中),然后在我的所有选项卡中读取它 .

有没有办法直接将父组件中的对象共享到子路径的组件?有点类似于Angular 1中继承的范围?

我知道我可以使用服务来共享对象,我只是好奇是否有内置的解决方案 .

我也知道可以从父路线获取路线参数,但在这种情况下它不会非常有用 .

1 回答

  • 3

    “内置解决方案”实际上是使用共享服务 .

    还可以选择使用 @Input() 装饰器,但在您的情况下它不适用,因为您可以使用路径 . 这仅适用于父子关系,其中子在父组件内 .

    另一种选择是使用 Route Data Resolver 在激活路由之前解析数据,但由于数据已经加载,因此共享服务选项是您案例的最佳解决方案 .

相关问题