如何制作一个子组件 - 材料对话框 - 可用于/用于两个模块?

时间:2017-10-10 12:12:09

标签: angular angular-material

我有一个Material Dialog组件,它在其他组件中导入并正常工作。一种儿童成分。它正在导入和添加 在根app.module.ts中:

import { PasswordDialogComponent } from './password-dialog/password-dialog.component';
....
declaration:[PasswordDialogComponent, ....]
.....

现在我有另一个模块:dashboard.module.ts我要导入相同的对话框组件,以便能够在属于仪表板模块的其他组件中使用它。

问题是当我再次在PasswordDialogComponent中声明dashboard.module.ts时,我收到以下错误: ERROR in Error: Type PasswordDialogComponent in....src/app/password-dialog/password-dialog.component.ts is part of the declarations of 2 modules: 这是正确的。

那么,如何在两个/两个不同模块中使用相同的子组件?或者我应该为dashboard.module.ts创建一个新的子组件,它通常具有相同的作业并执行与PasswordDialogComponent相同的功能?

1 个答案:

答案 0 :(得分:1)

您可以做的是为 PasswordDialogComponent 创建一个模块,将其命名为dialog.module.ts此模块可以在以后用于多个对话框。您可以在 root 信息中心模块中导入此模块。

所以dialog.module.ts看起来像:

import { PasswordDialogComponent } from './password-dialog/password-dialog.component';
@NgModule({
  declarations: [PasswordDialogComponent, ....]
  .....
export class dialogModule { }

您的模块如下:

import { dialogModule } from './dialog/dialog.module'; // or ../dialog/
@NgModule({
  imports: [dialogModule, ....]
  .....