Angular 我的模块没有';无法从app.module中查看组件
我有自己的模块(Angular 我的模块没有';无法从app.module中查看组件,angular,Angular,我有自己的模块(FrameworkModule),在import内部app.module 这是我的模块: @NgModule({ imports: [ CommonModule ], declarations: [ CheckFieldComponent, ], exports: [ CheckFieldComponent, ], }) export class FrameworkModule { } 如果我使用了app.module中的任何组件
FrameworkModule
),在import
内部app.module
这是我的模块:
@NgModule({
imports: [
CommonModule
],
declarations: [
CheckFieldComponent,
],
exports: [
CheckFieldComponent,
],
})
export class FrameworkModule { }
如果我使用了app.module
中的任何组件,那么FrameworkModule
中的组件将看不到<代码>应用程序模块当然包括我的框架模块
例如:
在组件xyz
(在我的FrameworkModule
中定义)中,我正在使用zyx
组件(在app.module
中定义)-然后xyz
没有看到zyx
组件
错误是:
无法绑定到“xyz”,因为它不是“zyx”的已知属性
这是故意的。如果要使用模块中的组件,则必须导入此模块。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)
在任何不只是hello world示例的Angle应用程序中,最好避免在应用程序模块中声明组件 Christoph建议的是最好的方法,让自己成为一个共享模块,在其中可以声明所有组件。这看起来可能有很多工作要做,但并没有那么多,只是角度有多大。AppModule是根目录,它包含所有其他内容,您无法将其导入任何位置,否则最终将产生循环依赖关系 我正在构建一个大型应用程序,而应用程序模块本身只声明应用程序组件,没有其他组件
祝你好运 嗯,我还能说些什么来解释。。如果在CheckFieldComponent.html中使用“”,则显示错误。另一个组件在app.module中,你能给我举个例子吗?我有很多组件,我无法将它们全部重新制作成模块化的AKS,例如@Christoph_Lütjen,但正如我所说的,我有很多组件,我无法将它们重写成模块。我的解决方案是什么?一个模块并从项目导入所有组件?一个选项是创建一个“SharedComponentsModule”,并将大部分组件从应用程序模块移动到此新模块。但我建议创建更小的模块。这并不需要太多的工作(假设您有一个IDE,它可以为您修复损坏的导入提供一些支持)。或者删除您的子模块并将所有内容移动到AppModule(不推荐)。好的。嗯,所有组件的路径都是一样的,但我只是将它们的声明移动到共享模块?是的,您不必实际移动组件,只需在共享模块内声明它们。