【问题标题】:How to inject data into Angular2 component created from a router?如何将数据注入从路由器创建的 Angular2 组件中?
【发布时间】:2016-01-23 08:15:42
【问题描述】:

我目前正在尝试为我们的 Angular1 应用程序(相当复杂的应用程序)构建一个 Angular2 原型(基于 alpha44),并且我正在尝试在使用路由和子路由时找到最佳模型/数据架构。

在我的示例中,从路由创建的子组件中,我想访问父组件的属性(托管 router-outlet)。

但是当你从router-outlet 创建一个组件时,你不能再使用@Input@Output。 那么注入一些数据/属性的最佳实践是什么,除了基本的routeParams 和静态的routeData

如何在没有过多耦合的情况下与父组件通信?

【问题讨论】:

  • this issue。 AFAIK 现在与router-outlet 的组件通信的唯一方法是使用 DI。

标签: components router angular


【解决方案1】:

您可以使用RouteData 将数据传递到路由中。请参阅 herehere。我仍然缺少从组件中初始化此数据 obj 的部分(参见my question

【讨论】:

    【解决方案2】:

    共享服务可以与路由器添加的组件一起使用。详情见https://angular.io/docs/ts/latest/cookbook/component-communication.html

    data 支持也被添加到 RC.4 中的新路由器中。详情见How do I pass data in Angular 2 components while using Routing?

    Angular 2 - equivalent to router resolve data for new router 也可能是相关的。

    【讨论】:

      【解决方案3】:

      您可以通过 Subject,Observable 将来自 Router Outlet 内的子组件的数据传递(注入)到父组件。您可以在 video 中找到我的解决方案。

      查看 GitHub 上的代码:https://github.com/tabvn/angular-blog

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-14
        • 2020-11-20
        • 2017-05-07
        • 1970-01-01
        • 2016-10-06
        相关资源
        最近更新 更多