我有自己的模块(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”的已知属性。
答案 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是根目录,它包含其他所有内容,您无法将其导入任何地方,否则最终将具有循环依赖项。
我正在构建一个大型应用程序,而应用程序模块本身仅声明了该应用程序组件,没有其他组件。
祝你好运!