我的模块没有看到来自app.module的组件

时间:2018-12-05 16:04:50

标签: angular

我有自己的模块(func1(param2=Some("value2")) // not enough arguments for method // func1: (param1: Option[String], param2: Option[String])String. // Unspecified value parameter param1. ),该模块在FrameworkModule内的import中被调用

这是我的模块:

app.module

如果我使用@NgModule({ imports: [ CommonModule ], declarations: [ CheckFieldComponent, ], exports: [ CheckFieldComponent, ], }) export class FrameworkModule { } 中的任何组件,则看不到app.module中的组件。 FrameworkModule当然包括我的App.module

例如: 在组件FrameworkModule(在我的xyz中定义)中,我正在使用FrameworkModule组件(在zyx中定义)–然后app.module没有看到xyz组件。

错误:

  

无法绑定到“ xyz”,因为它不是“ zyx”的已知属性。

2 个答案:

答案 0 :(得分:1)

这是设计使然。如果要使用模块中的组件,则必须导入该模块。您的FeatureModule不(也不能)导入AppModule,因此您不能使用AppModule中定义的组件。

常见的解决方法是创建第三个模块,可以将其导入到AppModule和FeatureModule中。

示例:

 AppModule
   imports: ChildModule1

 ChildModule1
   imports: -

 => AppModule can use components from ChildModule1 (and AppModule)
 => ChildModule1 can use only components from ChildModule1

 =====

 AppModule
   imports: ChildModule1

 ChildModule1
   imports: AppModule

 => Not possible, circular dependency

 =====

 AppModule
   imports: ChildModule1, SharedModule1

 ChildModule1
   imports: SharedModule1

 SharedModule1
   imports: -

 => AppModule can use components from ChildModule1 and SharedModule1 (and AppModule)
 => ChildModule1 can use only components from SharedModule1 (and ChildModule1)

答案 1 :(得分:1)

在不只是世界性例子的任何角度应用程序中,最好避免在app模块中声明组件。

Christoph的建议是最好的方法,使自己成为一个共享模块,可以在其中声明所有组件。看起来可能需要完成很多工作,但并没有那么多,而仅仅是角度工作。 AppModule是根目录,它包含其他所有内容,您无法将其导入任何地方,否则最终将具有循环依赖项。

我正在构建一个大型应用程序,而应用程序模块本身仅声明了该应用程序组件,没有其他组件。

祝你好运!