Angular 4 - 如何将值从父组件传递到子模块

Angular 4 - How to pass value from parent component to child modules

我正在尝试将值从父组件传递到子模块。这是我的项目结构:

++Layout
---admin-layout.component.html
---admin-layout.component.ts
++Dashboard
---dashboard.component.html
---dashboard.component.ts
---dashboard.module.ts
---dashboard.routing.ts

我的 app.routing.ts 路由是这样的。

export const AppRoutes: Routes = [{
  path: '',
  component:  AdminLayoutComponent,
  children: [
    {path: '/dashboard', loadChildren: 'PATH/dashboard.module#DashboardModule'},
///
]}];

所以我的问题是我在管理中有一个点击事件-layout.html 那么如何将值从管理布局发送到仪表板?

目前,我正在通过 Url 发送它,比如在路径

上更改它
 {path: '/dashboard/:eventidvalue', loadChildren: 'PATH/dashboard.module#DashboardModule'},

路由时。

是否有其他干净的替代方法。

您可以使用具有一个实例的单例服务,在其中放入一些日期,然后在您需要的任何地方获取它们。 之后创建一个共享模块,然后创建一个共享服务并将您的共享模块导入您的主模块和仪表板模块

你可以使用 ModuleWithProviders 和 forRoot 来提供单例服务

import { SharedService } ...
...
export class SharedModule {
static forRoot(): ModuleWithProviders {
    return {
        ngModule: SharedModule,
        providers: [SharedService]
    }
}}

您可以这样导入它:

imports: [
    SharedModule.forRoot(),
],