小编Adr*_*IER的帖子

角材料对话框和ngrx

我正在使用Ngrx和Angular材料开发新的Angular 6应用程序。我正在创建将由公司中的许多开发人员使用的基本应用程序。我的问题是在要创建的对话框redux系统上。

我将首先分享我的实际代码,然后我将解释问题和尝试的内容。

我的目标:在我的应用程序中的任何地方,我只想调用一个操作即可打开自定义对话框(特定于每个功能)。该应用程序应打开多个全屏对话框。

这是我的简化架构:

AppModule
CoreModule
DialogsModule (StoreModule.forFeature('dialog', dialogReducer) / Effects.forFeature([DialogEffects]))
    FeatureAModule (contains specific dialogs component)
    FeatureBModule (contains specific dialogs component)
Run Code Online (Sandbox Code Playgroud)

我想要的,在我的应用程序中的任何地方:

// Random Feature
 openDialog(): void {
    const payload: {
       componentOrTemplateRef: MyDialogComponent, // The dialog, create by dev, in a specific feature
       config: {
          id: 'my-custom-id',
          data: {
             ... // MAT_DIALOG_DATA
          }
       }
    };
    this.store.dispatch(new OpenDialogAction(payload));
}
Run Code Online (Sandbox Code Playgroud)

我的实际对话框Redux:

dialog.action.ts

export enum DialogActionTypes {
  OPEN = '[DIALOG] OPEN',
  SAVE_REF = '[DIALOG] SAVE_REF' // use to store dialog reference in …
Run Code Online (Sandbox Code Playgroud)

architecture typescript angular-material ngrx angular

6
推荐指数
1
解决办法
1858
查看次数