为什么共享模块导入失败?

肖恩

我有一个使用CoreModuleandSharedModule模式的小角度应用程序由于目前我的应用程序很小,因此我已经SharedModule在根模块中导入了AppModule我也有一个名为懒加载的管理模块,AdminModule但即使已将其导入到根模块中,它似乎也无法访问共享模块。SharedModule为了在管理模块的组件内部使用它,我必须再次显式导入为什么是这样?如果必须在每个延迟加载的模块中再次重新导入它们,那么将它们导入到根模块中有什么意义?

应用模块

...
imports: [
    BrowserModule,
    BrowserAnimationsModule,
    MatExpansionModule,
    AppRoutingModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFirestoreModule, // imports firebase/firestore, only needed for database features
    AngularFireAuthModule, // imports firebase/auth, only needed for auth features,
    AngularFireStorageModule, // imports firebase/storage only needed for storage features
    SharedModule, // To be imported on each feature module, instead of AppModule. For now, this is fine though
    CoreModule,
    HttpClientModule
  ],
...

应用程序路由模块(延迟加载)

const routes: Routes = [
  {
    path: 'admin',
    loadChildren: './admin/admin.module#AdminModule',
    canActivate: [AdminAuthGuard]
  }]

管理员模块

...
imports: [CommonModule, AdminRoutingModule, SharedModule, CoreModule],

一个示例是,如果我在中有页脚组件,SharedModule并尝试在AdminHomeComponent其中的脚注组件中使用它,则会AdminModule收到错误消息(不导入SharedModule)。导入时一切正常。

保罗·马斯卡雷尔

导入模块可使导入外部模块的模块组件能够查看该导入模块中的组件。但是只有该模块中的模块,而不是嵌套模块中的模块。

在根模块中导入模块对PROVIDERS很有用,这与Components完全不同。

如果导入在模块中提供服务的模块,则该模块和嵌套模块中的所有组件都将能够看到提供程序。(这就是为什么一个好的做法,如果模块的提供者和组件将被重用,则最好仅将模块的提供者置于静态的forRoot()方法中)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript模块导入失败-为什么?

为什么 numpy 导入失败?

为什么在Windows上的Python 3下创建模块后导入失败?

为什么从模块导入功能会导入整个模块?

为什么我不能导入模块?

为什么要从删除的路径导入模块?

为什么从Hyper crate多次导入失败?

为什么从SBT导入intellij项目失败

为什么Prolog的ISO模块标准失败了?

为什么导入模块会导致循环导入错误

Javascript模块导入失败

当未定义默认导出时,“模块”中的导入模块会导入什么?为什么它与作为模块导入*不同?

在AppModule中导入的共享模块

为什么已经导入模块时需要显式导入模块?

Python / Django:为什么在使用模块之前立即导入模块会阻止循环导入?

为什么在“导入模块”和“从模块导入*”中,全局变量的行为不同?

为什么子模块的代码尝试直接或通过相对导入来导入同级子模块?

为什么必须将SharedModule导入到根模块?

在python中,为什么要从内置模块导入“对象”?

为什么导入错误:没有名为lightgbm的模块

为什么模块导入实际上不存在?

为什么延迟加载的模块必须导入commonModule?角度2

从模块导入的全局变量不会更新-为什么?

为什么从模块导入*中使用坏习惯?

为什么不能在sys.path中导入模块?

为什么不能在Deno REPL内导入模块?

为什么re模块试图导入enum.IntFlag?

为什么不能在标准JavaScript中导入模块?

在 AWS Lambda 中,为什么无法导入函数的模块?

TOP 榜单

热门标签

归档