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

时间:2018-04-02 08:19:58

标签: angular angular-ui-router

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

++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'},
///
]}];

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

目前,我通过Url发送它,比如在路径上更改它

 {path: '/dashboard/:eventidvalue', loadChildren: 'PATH/dashboard.module#DashboardModule'},

路由时。

有没有其他替代方法可以做到。

1 个答案:

答案 0 :(得分:3)

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

您可以使用ModuleWithProviders和forRoot提供单件服务

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

你可以这样导入:

imports: [
    SharedModule.forRoot(),
],